在我的当前应用程序中,当我第一次加载一个Activity时,onResume函数会被触发。我查看了Activity Lifecycle,但没有找到阻止这种情况发生的方法。
是否可以在不使用SharedPreferences的情况下,防止在第一次加载Activity时触发onResume()函数?
是否可以在不使用SharedPreferences的情况下,防止在第一次加载Activity时触发onResume()函数?
首先,正如RvdK所说,您不应修改Android Activity生命周期,您可能需要重新设计活动行为以符合它。
无论如何,这是我认为最好的方法:
1.在您的Activity内部创建一个布尔变量
public class MyActivity extends Activity{
boolean shouldExecuteOnResume;
// The rest of the code from here..
}
2. 在onCreate方法中将其设置为false:
public void onCreate(){
shouldExecuteOnResume = false
}
3. 然后在您的 onResume 中:
public void onResume(){
if(shouldExecuteOnResume){
// Your onResume Code Here
} else{
shouldExecuteOnResume = true;
}
}
通过这种方式,您的onResume
将不会在第一次执行(shouldExecuteOnResume
为false),但它将在加载活动的所有其他时间执行(因为shouldExecuteOnResume
将为true)。
如果活动随后被用户或系统杀死,则下一次加载它时将再次调用onCreate
方法,因此onResume
等等将不会被执行。
android:launchMode="singleTask"
属性来使其成为单任务。这样只会创建一次,每次调用该活动时都会重复使用,并保持 shouldExecuteOnResume
非静态。 - AndyW