Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 判斷某一個類是否存在任務棧裡面

Android 判斷某一個類是否存在任務棧裡面

編輯:關於Android編程

在開發項目的時候,我們經常會遇到一些問題,除了設置一些Activity的啟動模式之外,好需要得到這個類是否被啟動過,判斷某一個類是否存在任務棧裡面這個時候,我們就可以用到下面的方法:
/**
     * 判斷某一個類是否存在任務棧裡面
     * @return
     */
    private boolean isExsitMianActivity(Class cls){
        Intent intent = new Intent(this, cls);  
        ComponentName cmpName = intent.resolveActivity(getPackageManager());  
        boolean flag = false;  
        if (cmpName != null) { // 說明系統中存在這個activity  
            ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);  
            List taskInfoList = am.getRunningTasks(10);  
            for (RunningTaskInfo taskInfo : taskInfoList) {  
                if (taskInfo.baseActivity.equals(cmpName)) { // 說明它已經啟動了  
                 flag = true;  
                    break;  //跳出循環,優化效率
                }  
            }  
        }
  return flag;  
    }
    /**
     * 進行邏輯處理
     */
    public void dealWithIntent(){
     if(isExsitMianActivity(MainActivity.class)){//存在這個類
      //進行操作
     }else{//不存在這個類
      //進行操作
     }
    }

另外還有:
一、根據包名判斷應用是否存在

 

public boolean checkApplication(String packageName) {
  if (packageName == null || .equals(packageName)){
      return false;
  }
  try {
      ApplicationInfo info = getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
      return true;
  } catch (NameNotFoundException e) {
      return false;
  }
}


 


二、判斷Activity是否存在

 

 Intent intent = new Intent();
  intent.setClassName(包名, 類名);

 

 

方法一:

if (getPackageManager().resolveActivity(intent, 0) == null) {  
       // 說明系統中不存在這個activity
  }

 

方法二:

 if(intent.resolveActivity(getPackageManager()) == null) {  
       // 說明系統中不存在這個activity
  }

 

方法三:

List list = getPackageManager().queryIntentActivities(intent, 0);
  if (list.size() == 0) {   
       // 說明系統中不存在這個activity
  }

 

 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved