首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OnResume仅在第二次访问活动时发生

OnResume仅在第二次访问活动时发生
EN

Stack Overflow用户
提问于 2018-05-02 22:54:03
回答 3查看 134关注 0票数 0

我正在尝试为我的android应用程序编写代码,以便在活动恢复时发生的事情。虽然我只希望在第二次而不是第一次访问活动时发生这种情况。

因此,我希望用户在第一次访问该活动时在onCreate方法中执行所需的操作,然后当他们返回该活动时,就会发生onResume代码。

我是否应该使用不同的方法,或者我如何才能实现我希望做的事情?

代码语言:javascript
复制
public void onResume(){
    super.onResume();

    RunningStatus = sharedPreferences.getBoolean("RunningStatus", false);

    if (isS1Pressed) {
        if (isPressed) {
            if (RunningStatus = false) {
                pause.setBackgroundResource(R.drawable.start);
            }
        }
    }

编辑:

我不是说第二次,我是说每次之后。基本上,我有一条生产线,我的应用程序决定它是领先还是落后。因此,当用户进入此活动时,即可执行计算。我们有一个暂停按钮,在现实生活中,如果生产线已经停止,用户可以暂停生产线。虽然我希望用户可以走出特定的生产线,也可以在其他生产线上进行计算。尽管在那一刻,一旦我离开了活动,我就会失去它的所有状态。

谢谢

EN

回答 3

Stack Overflow用户

发布于 2018-05-02 22:58:10

您可以使用布尔型标志。在onResume中,例如

代码语言:javascript
复制
if (secondVisit) {
  ...
} else secondVisit = true;
票数 0
EN

Stack Overflow用户

发布于 2018-05-02 23:02:10

如果你想在非常特定的时间做一些事情(只有第二次,而不是第一次或第三次,第四次...),我建议你应该使用一些计数器变量,并使用活动方法onSaveInstanceState()和onRestoreInstanceState()来存储和检索。如果你不想在应用被终止时重置计数器,可以使用像SharePreference这样的数据持久化来存储计数器。

票数 0
EN

Stack Overflow用户

发布于 2018-05-02 23:20:48

我假设您已经经历了活动生命周期,如果没有,请访问https://developer.android.com/guide/components/activities/activity-lifecycle

代码语言:javascript
复制
boolean secondUse=false;//this should be a field in the activity class

onRestart()方法仅在我们访问活动和返回,然后访问时调用(即,当活动已经在活动堆栈中时)。

如果您有其他用例,那么使用sharedPreference会更好。

重写其中的onRestart(),编写以下代码

代码语言:javascript
复制
if(!seconduse){
//do your stuff
secondUse=true;
}

正如您在编辑中所说的,您需要在第一次访问后的每次访问中使用这些内容,然后只需将您的代码放入onRestart()方法中

代码语言:javascript
复制
public void onRestart(){
super.onRestart();

RunningStatus = sharedPreferences.getBoolean("RunningStatus", false);
   if (isS1Pressed) {
    if (isPressed) {
        if (RunningStatus = false) {
            pause.setBackgroundResource(R.drawable.start);
        }
    }
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50137625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档