Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android判斷當前App是在前台還是在後台

Android判斷當前App是在前台還是在後台

編輯:關於Android編程

本文實例為大家分享了Android判斷當前App狀態的具體實現代碼,供大家參考,具體內容如下

第一種:

 /**
  *判斷當前應用程序處於前台還是後台
  * 
  * @param context
  * @return 

  */

 public static boolean isApplicationBroughtToBackground(final Context context) {
  ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
  List<RunningTaskInfo> tasks = am.getRunningTasks(1);
  if (!tasks.isEmpty()) {
   ComponentName topActivity = tasks.get(0).topActivity;
   if (!topActivity.getPackageName().equals(context.getPackageName())) {
    return true;
   }
  }
  return false;
 }

上面這段代碼是需要一個權限的:

< uses-permission Android:name=”android.permission.GET_TASKS” />

第二種:

下面這段代碼是我最新發現,無需權限,妥妥滴:

不過我稍微做了調整,後台分為:service後台和activity後台,這裡認為不是前台的都認為後台。
 •service運行在後台,appProcess.importance = IMPORTANCE_SERVICE,
 •沒有service運行的後台, 

public static boolean isBackground(Context context) {


  ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
  List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
  for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
   if (appProcess.processName.equals(context.getPackageName())) {
    if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
     System.out.print(String.format("Foreground App:", appProcess.processName));
     return false;
    }else{
     System.out.print("Background App:"+appProcess.processName);
     return true;
    }
   }
  }
  return false;
 }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。

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