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 Studio获取配置资源与第三方包信息的方法
在 Android 开发中,我们经常需要从资源文件中获取颜色、字符串、数值等配置信息,以及获取应用的包信息和第三方依赖信息,下面详细介绍这些操作的方法,需要的朋友可以参考下2025-04-04
Android_RecyclerView实现上下滚动广告条实例(带图片)
本篇文章主要介绍了Android_RecyclerView实现上下滚动广告条实例(带图片),具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06
Kotlin示例讲解标准函数with与run和apply的使用
Kotlin的标准函数是指 Standard.kt 文件中定义的函数,任何Kotlin代码都可以自由地调用所有的标准函数。文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧2022-08-08
Android涨姿势知识点之你没用过的BadgeDrawable
现在Android中有许多的应用仿苹果的在应用图标上显示小红点,下面这篇文章主要给大家介绍了关于Android涨姿势知识点之你没用过的BadgeDrawable的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下2022-09-09


最新评论