comme indiqué dans le titre, je veux savoir s'il est possible pour le BroadcastReceiver de savoir si l'application est tuée.Android: Vérifiez si l'application est tué (glisser dans les applications récentes) dans un récepteur
J'ai essayé de accompli cela avec ActivityManager.RunningAppProcessInfo:
ActivityManager.RunningAppProcessInfo myProcess = new ActivityManager.RunningAppProcessInfo();
ActivityManager.getMyMemoryState(myProcess);
boolean isInForeground = myProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND;
boolean isInBackground = myProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_GONE;
boolean cached = myProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_CACHED;
boolean perceptile = myProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_PERCEPTIBLE;
boolean sleeping = myProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_TOP_SLEEPING;
boolean service = myProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_SERVICE;
Mais aucun de ces attributs peut me dire si mon application est encore en vie, ils ne peuvent me donner des conseils.
Normalement, j'utiliser getRunningTask (je sais qu'il est dépréciée):
ActivityManager manager = (ActivityManager) mActivity.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> runningTaskInfo = manager.getRunningTasks(100);
for(int i = 0; i < runningTaskInfo.size(); i++) {
ComponentName componentInfo = runningTaskInfo.get(i).topActivity;
if(componentInfo.getPackageName().equals(packageName)){
return true;
}
}
Mais cette solution je besoin d'une activité que je n'ai pas et je ne peux pas créer (Peut-être que vous avez une idée)?
Donc ma question: Est-il possible de savoir si votre application est tuée ou non?
Merci