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

/** * 获得属于桌面的应用的应用包名称 * @return 返回包含所有包名的字符串列表 */ private List getHomes() {   List names = new ArrayList();   PackageManager packageManager = this.getPackageManager();   //属性   Intent intent = new Intent(Intent.ACTION_MAIN);  intent.addCategory(Intent.CATEGORY_HOME);   List 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)需添加相关权限

复制代码 代码如下:

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

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

更多相关文章

  1. Android中判断当前API的版本号方法
  2. Android桌面小控件appwidget的故事Ⅰ
  3. Android(安卓)Studio开发环境的配置
  4. Android问题集锦之三十三:避免每次启动AS都要fetching Android(安
  5. 判断环境为iOS或Android
  6. Android系统使用global key 一键启动指定APP或者打开WiFi/蓝牙等
  7. android 手机欢迎界面不显示的问题?
  8. android gallery3d 源码分析(一)
  9. Android(安卓)2018最新验证手机号正则表达式

随机推荐

  1. SetContentView 到底Set去哪里呢?
  2. android微信第三方登录怎么通过code获取o
  3. Android(安卓)中压力测试工具Monkey的用
  4. Android开发指南(34) —— Multimedia an
  5. Android存储空间讲解
  6. 获取android API key
  7. android 的ListView中,如何判断其内容已滚
  8. TextView实现跑马灯的效果
  9. android 源代码定制--- 状态栏
  10. 仿IOS透明通知栏(仅支持4.4以上版本)