我正在尝试为我的android应用程序编写代码,以便在活动恢复时发生的事情。虽然我只希望在第二次而不是第一次访问活动时发生这种情况。
因此,我希望用户在第一次访问该活动时在onCreate方法中执行所需的操作,然后当他们返回该活动时,就会发生onResume代码。
我是否应该使用不同的方法,或者我如何才能实现我希望做的事情?
public void onResume(){
super.onResume();
RunningStatus = sharedPreferences.getBoolean("RunningStatus", false);
if (isS1Pressed) {
if (isPressed) {
if (RunningStatus = false) {
pause.setBackgroundResource(R.drawable.start);
}
}
}编辑:
我不是说第二次,我是说每次之后。基本上,我有一条生产线,我的应用程序决定它是领先还是落后。因此,当用户进入此活动时,即可执行计算。我们有一个暂停按钮,在现实生活中,如果生产线已经停止,用户可以暂停生产线。虽然我希望用户可以走出特定的生产线,也可以在其他生产线上进行计算。尽管在那一刻,一旦我离开了活动,我就会失去它的所有状态。
谢谢
发布于 2018-05-02 22:58:10
您可以使用布尔型标志。在onResume中,例如
if (secondVisit) {
...
} else secondVisit = true;发布于 2018-05-02 23:02:10
如果你想在非常特定的时间做一些事情(只有第二次,而不是第一次或第三次,第四次...),我建议你应该使用一些计数器变量,并使用活动方法onSaveInstanceState()和onRestoreInstanceState()来存储和检索。如果你不想在应用被终止时重置计数器,可以使用像SharePreference这样的数据持久化来存储计数器。
发布于 2018-05-02 23:20:48
我假设您已经经历了活动生命周期,如果没有,请访问https://developer.android.com/guide/components/activities/activity-lifecycle
boolean secondUse=false;//this should be a field in the activity classonRestart()方法仅在我们访问活动和返回,然后访问时调用(即,当活动已经在活动堆栈中时)。
如果您有其他用例,那么使用sharedPreference会更好。
重写其中的onRestart(),编写以下代码
if(!seconduse){
//do your stuff
secondUse=true;
}正如您在编辑中所说的,您需要在第一次访问后的每次访问中使用这些内容,然后只需将您的代码放入onRestart()方法中
public void onRestart(){
super.onRestart();
RunningStatus = sharedPreferences.getBoolean("RunningStatus", false);
if (isS1Pressed) {
if (isPressed) {
if (RunningStatus = false) {
pause.setBackgroundResource(R.drawable.start);
}
}
}
}https://stackoverflow.com/questions/50137625
复制相似问题