Android, получить предыдущее состояние активности? - PullRequest
1 голос
/ 13 декабря 2010

Мне нужно получить состояние, из которого только что вышло действие, например, мне нужно запустить некоторый код в моем onResume (), но только после того, как он вызывается следующим за onPause (), а не после следующего за Start ().

Если onResume () вызывается после onStop (), тогда мне нужно запустить другой код.

Как мне правильно это проверить?

1 Ответ

1 голос
/ 13 декабря 2010

Здесь - жизненный цикл.Я думаю, что вы можете сохранить флаг в ваших предпочтениях и проверить его во время onResume.Вот некоторый псевдокод:

onStart() {
    saveFlagToPreferences(false);
}

onResume() {
    boolean doStuff = getFlagFromPrefs();
    if (doStuff) {
        //do some stuff following onPause
    } else {
        //do some stuff following onStop
    }
}

onPause() {
    saveFlagToPreferences(true);
}

onStop() {
    saveFlagToPreferences(false);
}

Чтобы загрузить настройки, вы можете использовать что-то вроде:

SharedPreferences settings = getSharedPreferences("MyAppName",0);
settings.getBoolean("flag", true);  

и сохранить их:

SharedPreferences settings = getSharedPreferences("MyAppName",0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("flag",true);
editor.commit();
...