2010-12-13 89 views
1

我需要得到刚刚出来的活动状态,例如,我需要在我的onResume()中运行一些代码,但只能在onPause()之后调用它,而不能在Start()上执行。Android,获得以前的活动状态?

如果在onStop()之后调用onResume(),那么我需要运行一些不同的代码。

我该如何正确检查这个?

回答

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 2010-12-13 16:56:33

+0

我没有最终这样做,实际上我只是使用了一个全局变量,并且让我的onpause设置了布尔值,在这种情况下,如果onpause尚未被调用,那么在启动和恢复时将是错误的。我不知道哪个更好,但我的工作正常。 – Hamid 2011-01-03 16:38:58