Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 判斷程序在手機中是否是活動狀態或者正在運行狀態

Android 判斷程序在手機中是否是活動狀態或者正在運行狀態

編輯:關於Android編程

沈陽斌子在今天項目需求上碰到個這樣的問題,在Service中需要判斷當前的程序是否是活動狀態,換句話說也就是說後台跑的服務中有業務需求檢測當前程序是否是該服務的程序 這樣好讓點擊推送通知時跳轉到不同的頁面進行不同的操作。下面就粘貼出我封裝了一下的方法和大家共享。

/**
	 * 
	 *  @Description    : 這個包名的程序是否在運行
	 *  @Method_Name    : isRunningApp
	 *  @param context 上下文
	 *  @param packageName 判斷程序的包名
	 *  @return 必須加載的權限
	 *       
	 *  @return         : boolean
	 *  @Creation Date  : 2014-10-31 下午1:14:15 
	 *  @version        : v1.00
	 *  @Author         : JiaBin
	 
	 *  @Update Date    : 
	 *  @Update Author  : JiaBin
	 */
	public static boolean isRunningApp(Context context, String packageName) {
		boolean isAppRunning = false;
		ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
		List list = am.getRunningTasks(100);
		for (RunningTaskInfo info : list) {
			if (info.topActivity.getPackageName().equals(packageName) && info.baseActivity.getPackageName().equals(packageName)) {
				isAppRunning = true;
				// find it, break
				break;
			}
		}
		return isAppRunning;
	}

首先需要注意的是要想進行判斷,必須加入注釋中的那個權限,不然程序會拋異常的。大體的思路是這樣的,獲得Activity的管理器,並且通過管理器獲得當前正在運行的100個程序,然後去循環這個結果集,獲取在迭代過程中每個程序的基礎頁面的包名和棧式最頂層的包名,用該包名和我們需要判斷傳入的包名參數進行比對,如果找到了就認為該程序正在運行,如果沒找到就證明該程序沒在運行。我現有的程序就是這樣實現的,如有漏洞還請批評指正。沈陽斌子原創。

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