欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android判斷當前App是在前臺還是在后臺

 更新時間:2016年08月30日 11:40:54   作者:xx326664162  
這篇文章主要為大家詳細介紹了Android判斷當前App是在前臺還是在后臺的方法,感興趣的小伙伴們可以參考一下

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

第一種:

 /**
  *判斷當前應用程序處于前臺還是后臺
  * 
  * @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” />

第二種:

下面這段代碼是我最新發(fā)現(xiàn),無需權限,妥妥滴:

不過我稍微做了調(diào)整,后臺分為: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;
 }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論