Androidはアプリケーションが実行されているか、バックグラウンドにあるかどうかを判断します.

6342 ワード

開発では、アプリケーションがフロントで実行されているかどうかを判断してから、どのような操作をする必要がある場合があります.アプリケーションがバックグラウンドに切り替わると、どのような操作が行われますか.この場合、アプリケーションがフロントで実行されているかバックグラウンドで実行されているかを判断する必要があります/**判断プログラムがバックグラウンドで実行されているかどうか*/
public static boolean isRunBackground(Context context) {
     
  ActivityManager activityManager = (ActivityManager) context
      .getSystemService(Context.ACTIVITY_SERVICE);
  List<RunningAppProcessInfo> appProcesses = activityManager
      .getRunningAppProcesses();
  for (RunningAppProcessInfo appProcess : appProcesses) {
     
    if (appProcess.processName.equals(context.getPackageName())) {
     
      if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
     
        //          
        return true;
      } else {
     
        return false;
      }
    }
  }
  return false;
}

/**プログラムがフロントで実行されているかどうかを判断する(現在実行されているプログラム)*/
public boolean isRunForeground() {
     
  ActivityManager activityManager = (ActivityManager) getApplicationContext()
      .getSystemService(Context.ACTIVITY_SERVICE);
  String packageName = getApplicationContext().getPackageName();
  List<RunningAppProcessInfo> appProcesses = activityManager
      .getRunningAppProcesses();
  if (appProcesses == null)
    return false;
  for (RunningAppProcessInfo appProcess : appProcesses) {
     
    if (appProcess.processName.equals(packageName)
        && appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
     
      return true;//        
    }
  }
  return false;
}