11

在我当前的应用程序中,当我第一次加载 Activity 时会触发 onResume 函数。我查看了Activity Lifecycle,但没​​有找到防止这种情况发生的方法。

我可以在第一次加载 Activity 时阻止 onResume() 函数加载,而不使用 SharedPreferences?

4

1 回答 1

34

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

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

1.在您的活动中创建一个布尔变量

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为假),而是在加载活动的所有其他时间执行(因为shouldExecuteOnResume将为真)。如果该活动在下次加载时被杀死(由用户或系统),则该onCreate方法将再次被调用,因此onResume不会被执行,等等。

于 2013-03-29T10:13:10.640 回答