ProcessLifecycleOwner не вызывает onStop(), приложение удалено из последних приложений (пауза/обзор)Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 ProcessLifecycleOwner не вызывает onStop(), приложение удалено из последних приложений (пауза/обзор)

Сообщение Anonymous »

Я использую ProcessLifecycleOwner для отслеживания событий жизненного цикла моего приложения, в частности для определения того, когда оно переходит на передний план или на задний план. Однако я заметил, что метод onStop() в моем DefaultLifecycleObserver не вызывается, когда я удаляю приложение из списка последних приложений.
Он работает, когда я нажимаю кнопку «Назад». Он не вызывается. Когда я нахожусь в приложении, нажимаю кнопку паузы/обзора, чтобы приостановить работу последних приложений, а затем удаляю.
public class AppLifecycleManager extends Application implements DefaultLifecycleObserver {

private static final String PREFS_NAME = "AppPrefs";
private static final String KEY_APP_STATE = "app_state"; // Save app state
private SharedPreferences sharedPreferences;

@Override
public void onCreate() {
super.onCreate();
// Initialize SharedPreferences
sharedPreferences = getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);

// Register this class as a lifecycle observer
ProcessLifecycleOwner.get().getLifecycle().addObserver(this);
}

// Called when the app enters the foreground
@Override
public void onStart(LifecycleOwner owner) {
super.onStart(owner);
saveAppState(true); // App is in the foreground
}

// Called when the app enters the background
@Override
public void onStop(LifecycleOwner owner) {
super.onStop(owner);
saveAppState(false); // App is in the background
}

// Save the app's state (foreground or background) in SharedPreferences
private void saveAppState(boolean isForeground) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean(KEY_APP_STATE, isForeground);
editor.apply();
}

// Get the saved app state (foreground or background)
public boolean isAppInForeground() {
return sharedPreferences.getBoolean(KEY_APP_STATE, false); // Default to false (background)
}
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... ecent-apps
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»