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利用ViewPager实现可滑动放大缩小画廊效果
这篇文章主要介绍了Android利用ViewPager实现可滑动放大缩小画廊效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-08-08android studio 3.6.0 绑定视图新特性的方法
这篇文章主要介绍了android studio 3.6.0 绑定视图新特性的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-04-04Android开发方式之Java+html+javascript混合开发
这篇文章主要为大家详细介绍了Android开发方式的其中一种Java+html+javascript混合开发,感兴趣的小伙伴们可以参考一下2016-06-06详解RxJava2 Retrofit2 网络框架简洁轻便封装
本篇文章主要介绍了详解RxJava2 Retrofit2 网络框架简洁轻便封装,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-12-12Android 桌面Widget开发要点解析(时间日期Widget)
总的来说,widget主要功能就是显示一些信息。我们今天编写一个很简单的作为widget,显示时间、日期、星期几等信息。需要显示时间信息,那就需要实时更新,一秒或者一分钟更新一次2013-07-07
最新评论