Как определить, что приложение свернуто от нажатия клавиши "Домой"?
Используя onPause(), я могу проверить, идет ли активность в фоновый режим или нет. Моя проблема заключается в том, что onPause () вызывается каждый раз, даже если я собираюсь выполнить другое действие из этого действия.
Поэтому моя основная проблема заключается в том, что если я минимизирую приложение нажатием кнопки "Домой", я хочу удалить приложение из диспетчера задач, и этот код записывается в каждом действии, когда приложение собирается в фоновом режиме, НО не использует onPause().
Мой фрагмент кода ниже ->
@Override
public void onPause() {
if (isBackgroundRunning(this)){
ExitActivity.exitApplication(getApplicationContext());
}
super.onPause();
}
public static boolean isBackgroundRunning(Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningProcesses = am.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) {
if (processInfo.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
for (String activeProcess : processInfo.pkgList) {
if (activeProcess.equals(context.getPackageName())) {
//If your app is the process in foreground, then it's not in running in background
return true;
}
}
}
}
return true;
}
ExitActivity используется для удаления приложения из диспетчера задач.
public class ExitActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
finish();
}
public static void exitApplication(Context context) {
Intent intent = new Intent(context, ExitActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
context.startActivity(intent);
}
}
Я видел большинство вопросов, связанных с этим, но не могу найти решение. Пожалуйста, помогите мне. Заранее спасибо:)
1 ответ
Попробуйте вызвать finish() в методе onPause() в родительском / лаунчерном приложении. Это должно убить приложение, когда пользователь нажимает кнопку домой