当前位置: 代码迷 >> Android >> Android 判断当前的界面是不是是桌面的方法
  详细解决方案

Android 判断当前的界面是不是是桌面的方法

热度:8   发布时间:2016-04-28 04:37:58.0
Android 判断当前的界面是否是桌面的方法
在开发桌面飘浮控件的时候,需要通过service查看当前是不是桌面,从而控制漂浮窗的显现与消失,下面的代码就是判断是否是桌面的方法
  /**      * 判断当前界面是否是桌面      */      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;      }  


1楼angeldevil1昨天 17:10
好像从Android L开始getRunningTasks就不能这么用了,被废弃了,仅返回RunningTask的一个子集
  相关解决方案