1
我需要得到刚刚出来的活动状态,例如,我需要在我的onResume()中运行一些代码,但只能在onPause()之后调用它,而不能在Start()上执行。Android,获得以前的活动状态?
如果在onStop()之后调用onResume(),那么我需要运行一些不同的代码。
我该如何正确检查这个?
我需要得到刚刚出来的活动状态,例如,我需要在我的onResume()中运行一些代码,但只能在onPause()之后调用它,而不能在Start()上执行。Android,获得以前的活动状态?
如果在onStop()之后调用onResume(),那么我需要运行一些不同的代码。
我该如何正确检查这个?
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();
谢谢,我会实现这个明天让你知道我如何继续。 – Hamid 2010-12-13 16:56:33
我没有最终这样做,实际上我只是使用了一个全局变量,并且让我的onpause设置了布尔值,在这种情况下,如果onpause尚未被调用,那么在启动和恢复时将是错误的。我不知道哪个更好,但我的工作正常。 – Hamid 2011-01-03 16:38:58