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实现可滑动放大缩小画廊效果

    这篇文章主要介绍了Android利用ViewPager实现可滑动放大缩小画廊效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • android studio 3.6.0 绑定视图新特性的方法

    android studio 3.6.0 绑定视图新特性的方法

    这篇文章主要介绍了android studio 3.6.0 绑定视图新特性的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Android开发笔记之:Dialog的使用详解

    Android开发笔记之:Dialog的使用详解

    本篇文章是对Android中Dialog的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Android开发方式之Java+html+javascript混合开发

    Android开发方式之Java+html+javascript混合开发

    这篇文章主要为大家详细介绍了Android开发方式的其中一种Java+html+javascript混合开发,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • 详解RxJava2 Retrofit2 网络框架简洁轻便封装

    详解RxJava2 Retrofit2 网络框架简洁轻便封装

    本篇文章主要介绍了详解RxJava2 Retrofit2 网络框架简洁轻便封装,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Android 桌面Widget开发要点解析(时间日期Widget)

    Android 桌面Widget开发要点解析(时间日期Widget)

    总的来说,widget主要功能就是显示一些信息。我们今天编写一个很简单的作为widget,显示时间、日期、星期几等信息。需要显示时间信息,那就需要实时更新,一秒或者一分钟更新一次
    2013-07-07
  • Android开发快速实现底部导航栏示例

    Android开发快速实现底部导航栏示例

    这篇文章主要为大家介绍了Android开发快速实现底部导航栏的示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • Android手势识别功能

    Android手势识别功能

    这篇文章主要为大家详细介绍了Android手势识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • 利用Kotlin的方式如何处理网络异常详解

    利用Kotlin的方式如何处理网络异常详解

    这篇文章主要 给大家介绍了关于利用Kotlin的方式如何处理网络异常的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • Android解析json数据示例代码(三种方式)

    Android解析json数据示例代码(三种方式)

    本篇文章主要介绍了Android解析json数据示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论