1. 程式人生 > >判斷app是否後臺執行,判斷activity是否已經開啟,是否點中home鍵

判斷app是否後臺執行,判斷activity是否已經開啟,是否點中home鍵

/**
 * 判斷當前activity是否已經開啟
 * @param PackageName
* @param context
* @return
*/
public boolean isForeground(String PackageName,Context context){
    // Get the Activity Manager
ActivityManager manager = (ActivityManager)context.getSystemService(context.ACTIVITY_SERVICE);
// Get a list of running tasks, we are only interested in the last one,
// the top most so we give a 1 as parameter so we only get the topmost. List< ActivityManager.RunningTaskInfo > task = manager.getRunningTasks(1); // Get the info we need for comparison. ComponentName componentInfo = task.get(0).baseActivity; Log.e("<<<<<<<<<<","---------------"
+componentInfo.getClassName()); // Check if it matches our package name. if(componentInfo.getClassName().equals(PackageName)) return true; // If not then our app is not on the foreground. return false; }
/**
 * 判斷整個app專案是否在使用者操作介面
 *
 */
public void appIsRunning(){
    ActivityManager am = (ActivityManager)getContext().getSystemService(Context.ACTIVITY_SERVICE
); List<ActivityManager.RunningAppProcessInfo> appProcesses = am.getRunningAppProcesses(); String MY_PKG_NAME =getContext().getPackageName(); for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) { if (appProcess.processName.equals(MY_PKG_NAME)) { if (appProcess.importance != ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { Log.e("hhhh-->", "處於後臺" + appProcess.processName); } else { Log.e("hhhh-->", "處於前臺" + appProcess.processName); } } } }