Android判断现在所处界面是否为home主桌面的方法

 更新时间:2015年05月27日 16:07:40   作者:csdn_2013  
这篇文章主要介绍了Android判断现在所处界面是否为home主桌面的方法,涉及Android界面判断的相关技巧,需要的朋友可以参考下

本文实例讲述了Android判断现在所处界面是否为home主桌面的方法。分享给大家供大家参考。具体实现方法如下:

/** 
* 获得属于桌面的应用的应用包名称 
* @return 返回包含所有包名的字符串列表 
*/ 
private List<String> getHomes() { 
  List<String> names = new ArrayList<String>(); 
  PackageManager packageManager = this.getPackageManager(); 
  //属性 
  Intent intent = new Intent(Intent.ACTION_MAIN);
  intent.addCategory(Intent.CATEGORY_HOME); 
  List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent, 
    PackageManager.MATCH_DEFAULT_ONLY); 
  for(ResolveInfo ri : resolveInfo){ 
   names.add(ri.activityInfo.packageName); 
   Log.i("zhangyinfu PinyinIME.java", "packageName =" + ri.activityInfo.packageName);
  } 
  return names;
}

分析:

1)既然要判断当前界面,那就要判断当前的RunningTasks中的第一个;

2)引入ActivityManager获取RunningTasks;

3)取出RunningTasks中的topActivity的PackageName;

4)最后跟第一步得到的List做比较即可!

5)需添加相关权限

复制代码 代码如下:
<uses-permission android:name="android.permission.GET_TASKS" />

/** 
* 判断当前界面是否是桌面 
*/ 
public boolean isHome(){ 
  ActivityManager mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); 
  List<RunningTaskInfo> rti = mActivityManager.getRunningTasks(1);
  List<String> strs = getHomes();
  if(strs != null && strs.size() > 0){
   return strs.contains(rti.get(0).topActivity.getPackageName());
  }else{
   return false;
  }
}

希望本文所述对大家的Android程序设计有所帮助。

相关文章

  • Android最新状态栏处理介绍

    Android最新状态栏处理介绍

    大家好,本篇文章主要讲的是Android最新状态栏处理介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Android实现自定义圆角对话框Dialog的示例代码

    Android实现自定义圆角对话框Dialog的示例代码

    项目中多处用到对话框,本篇文章主要介绍了Android实现圆角对话框Dialog的示例代码,有兴趣的可以了解一下。
    2017-03-03
  • Android混合开发教程之WebView的使用方法总结

    Android混合开发教程之WebView的使用方法总结

    WebView是一个基于webkit引擎、展现web页面的控件,下面这篇文章主要给大家介绍了关于Android混合开发教程之WebView的使用方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧
    2018-05-05
  • Android UI组件Spinner下拉列表详解

    Android UI组件Spinner下拉列表详解

    这篇文章主要为大家详细介绍了Android UI组件Spinner下拉列表的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Android字体相关知识总结

    Android字体相关知识总结

    最近接到一个需求,大致内容是:全局替换当前项目中的默认字体,并引入 UI 设计师提供的一些新字体。于是对字体做了些研究,把自己的一些心得分享给大家。注意:本文所展示的系统源码都是基于Android-30 ,并提取核心部分进行分析
    2021-06-06
  • Android自定义View绘制贝塞尔曲线中小红点的方法

    Android自定义View绘制贝塞尔曲线中小红点的方法

    贝塞尔曲线的本质是通过数学计算的公式来绘制平滑的曲线,分为一阶,二阶,三阶及多阶。但是这里不讲数学公式和验证,那些伟大的数学家已经证明过了,所以就只讲讲Android开发中的运用吧
    2023-02-02
  • Android如何禁止横屏竖屏的变换

    Android如何禁止横屏竖屏的变换

    android4.0 禁止横竖屏切换使:android:configChanges="orientation|keyboardHidden|screenSize" 感兴趣的朋友可以了解下哈
    2013-06-06
  • Android实现跟随手指拖动并自动贴边的View样式(实例demo)

    Android实现跟随手指拖动并自动贴边的View样式(实例demo)

    本文通过实例代码给大家介绍了android实现跟随手指拖动并自动贴边的View样式,效果非常棒,具有参考借鉴价值,需要的朋友参考下吧
    2017-01-01
  • Android手势密码实现实例代码

    Android手势密码实现实例代码

    本篇文章主要介绍了Android手势密码实现实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 详解Android 传感器开发 完全解析

    详解Android 传感器开发 完全解析

    对于传感器的使用,不同版本的Android手机也许存在较大的硬件差异,本篇文章主要介绍了Android 传感器开发,有兴趣的可以了解一下。
    2016-12-12

最新评论