Android 判斷當前的界面是否是桌面的方法

jopen 10年前發布 | 19K 次閱讀 Android 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;    
      }    
來自:http://blog.csdn.net/zpf8861/article/details/38081673
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!