[Android]判断一个app运作在foreground

[Android]判断一个app运行在foregroundhttp://stackoverflow.com/questions/2314969/how-to-determine-if-

[Android]判断一个app运行在foreground

http://stackoverflow.com/questions/2314969/how-to-determine-if-one-of-my-activities-is-in-the-foreground

?

ActivityManager#getRunningAppProcesses() returns a List of RunningAppProcessInfo. Each RunningAppProcessInfo has a field called importance. importance equal to RunningAppProcessInfo.IMPORTANCE_FOREGROUND seems to show which activity is actively being observed by the user. There is also RunningAppProcessInfo.IMPORTANCE_VISIBLE which is lower but might be worth checking out.

?

class ForegroundCheckTask extends AsyncTask<Context, Void, Boolean> {  @Override  protected Boolean doInBackground(Context... params) {    final Context context = params[0].getApplicationContext();    return isAppOnForeground(context);  }  private boolean isAppOnForeground(Context context) {    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);    List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();    if (appProcesses == null) {      return false;    }    final String packageName = context.getPackageName();    for (RunningAppProcessInfo appProcess : appProcesses) {      if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND && appProcess.processName.equals(packageName)) {        return true;      }    }    return false;  }}

?

?