2010-12-13 2 views
1

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

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

Как я должен правильно проверить это?

ответ

1

Here - это жизненный цикл. Я думаю, вы можете сохранить флаг в своих предпочтениях и проверить его во время 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(); 
+0

Спасибо, я это реализовать завтра дайте знать, как я нахожусь. – Hamid

+0

Я не делал этого так, на самом деле я просто использовал глобальную переменную, и мой onpause установил логическое значение, и в этом случае он был бы ложным при запуске и возобновлен, если onpause еще не был вызван. Я не знаю, что считается лучшим решением, но мое работает отлично. – Hamid

Смежные вопросы