Я пытаюсь найти способ узнать, было ли приложение закрыто или ушло в фоновый режим. Мне нужна возможность сделать это с любым приложением. Я использую AcitivityManager для опроса, какие приложения работают, и сравниваю их с приложением, которое я ищу. Проблема заключается в том, что уровень важности устанавливается равным IMPORTANCE_BACKGROUND, когда он на самом деле находится в фоновом режиме И когда я использую кнопку «назад», чтобы «закрыть» приложение. Как я могу определить, действительно ли он закрыт или находится в фоновом режиме?
private boolean isActivityRunning(){
ActivityManager activityManager = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
for(int i = 0; i < procInfos.size(); i++){
Log.d(TAG, "Polling Serivce at application " +procInfos.get(i).processName);
if(procInfos.get(i).processName.equals(appLaunchedPackage)&&
(procInfos.get(i).importance ==RunningAppProcessInfo.IMPORTANCE_VISIBLE ||
procInfos.get(i).importance ==RunningAppProcessInfo.IMPORTANCE_FOREGROUND ||
procInfos.get(i).importance ==RunningAppProcessInfo.IMPORTANCE_BACKGROUND) ) {
Log.d(TAG, "Polling Serivce - the app has been found!");
return true;
}
}