Android-如果第一次加载活动(不使用SharedReferences),则阻止onResume()函数

Android-如果第一次加载活动(不使用SharedReferences),则阻止onResume()函数,android,android-activity,sharedpreferences,android-lifecycle,onresume,Android,Android Activity,Sharedpreferences,Android Lifecycle,Onresume,在我当前的应用程序中,onResume功能在我第一次加载活动时触发。我调查了这件事,但是我没有找到一个方法来阻止这件事的发生 我是否可以在不使用SharedReferences的情况下防止首次加载活动时加载onResume()函数?首先,正如RvdK所说,您不应该修改Android活动生命周期,您可能必须重新设计活动行为以符合它 无论如何,这是我看到的最好的方式: 1.在活动中创建布尔变量 public class MyActivity extends Activity{ boolean s

在我当前的应用程序中,onResume功能在我第一次加载活动时触发。我调查了这件事,但是我没有找到一个方法来阻止这件事的发生


我是否可以在不使用SharedReferences的情况下防止首次加载活动时加载onResume()函数?

首先,正如RvdK所说,您不应该修改Android活动生命周期,您可能必须重新设计活动行为以符合它

无论如何,这是我看到的最好的方式:

1.在活动中创建布尔变量

public class MyActivity extends Activity{
  boolean shouldExecuteOnResume;
  // The rest of the code from here..
}
2.在onCreate中将其设置为false:

public void onCreate(){
  shouldExecuteOnResume = false
}
3.然后在你的简历中:

public void onResume(){
  if(shouldExecuteOnResume){
    // Your onResume Code Here
  } else{
     shouldExecuteOnResume = true;
  }

}
这样一来,您的
onResume
将不会在第一次执行(
shouldExecuteOnResume
为false),而是在加载活动的所有其他时间执行(因为
shouldExecuteOnResume
将为true)。
如果该活动在下次加载时被(用户或系统)终止,则会再次调用
onCreate
方法,因此不会执行
onResume
等操作。

为什么不执行该操作?什么对打破Android的一致生命周期如此重要?你不能在onCreate中完成吗?可能重复的可能重复的谢谢你的回答。我也使用了您提到的相同方法,但是当我从另一个活动启动“MyActivity”活动时,变量shouldExecuteOnResume被重置。似乎每次调用MyActivity活动时,都会创建一个新实例,而不是使用现有实例。我希望应用程序使用MyActivity的现有实例。您可以尝试将变量设置为静态,但我猜问题在于您永远不知道您的应用程序是否/何时被系统终止。您可以尝试在桌面上放置一些其他控件来检查发生了什么。谢谢,当我使shouldExecuteOnResume static时,它起作用了。为了避免使用static,请使用
android:launchMode=“singleTask”
将您的活动设为单个任务。这将使它只创建一次,并在每次调用此活动时重复使用,并保持shouldexecuteonsume非静态Hello,当我尝试此操作时,我得到了“super not called exception”