android 小技巧之 --- 判断当前界面是否是桌面

来源:互联网 发布:结构化面试 知乎 编辑:程序博客网 时间:2024/03/29 01:09
/** * 判断当前界面是否是桌面 */private boolean isHome() {ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);List<RunningTaskInfo> rti = mActivityManager.getRunningTasks(1);return getHomes().contains(rti.get(0).topActivity.getPackageName());}/** * 获得属于桌面的应用的应用包名称 *  * @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);}return names;}
经在努比亚Z7测试,此方法判断是否是桌面并不准确,启动当前的app可以判断,但是启动其他app依然判断为桌面,故此处使用需要注意,要判断当前界面是否是桌面,需要另寻其他方案
0 0
原创粉丝点击