鉴于在onPause()之后只保证onResume()运行并且状态丢失。 是应该所有初始化都在onResume()而不是onCreate()?
例如,
myDbHelper = new MyDbHelper(getApplicationContext());
它在onCreate()中。我应该将它移动到onResume()吗? 我有一个listAdapter。它应该在onResume()中创建吗?
对于单身人士,是的,他们将以不同的方式实施see但其他变量呢?
答案 0 :(得分:1)
现在我正在处理与您的主题相关的事情。我强烈建议您将所有变量重用到onResume()中。因为你可以完成()你的活动B,因此在活动A中调用的唯一方法是onResume()。还可以使用null模式对象来避免变量的空指针异常。
答案 1 :(得分:1)
并非总是 - 当onPause()事件被触发时,当活动暂时失去焦点(如某些弹出事件)时,onResume()会被触发,然后再次获得焦点(从而触发onResume())。在这种情况下,如果您在onResume()中初始化了变量,那么它们将在此时重新初始化,并且您将丢失先前的值。
我能想到你在onResume()中做什么的最好的例子就是当你设置一个BroadcastReceiver时 - 你不希望接收器在警报到达前台时触发某事(你得到了一般信息)理念)。