0

如果我使用下面的代码,这是否会恢复已输入到 EditTextfields 和选定微调器项目中的文本?

    @Override
    protected void onPause(){ 
        super.onPause();

    }


    @Override 
    protected void onResume(){ 
        super.onResume(); 

    }

还是我必须告诉它保存当前值,然后在恢复活动时恢复?当我使用模拟器时,如果我没有这些方法,我会说回家然后再次运行我的应用程序,它总是会加载回以前的状态,所以我的问题是这真的有什么作用吗?

4

4 回答 4

1

不,此代码不执行任何操作。您正在覆盖这些方法,但为它们提供了仅调用父实现的实现。这与一开始就没有覆盖它们是一样的。

暂停/恢复时保存/恢复状态并不是绝对必要的。您需要手动保存状态的唯一原因是,即使您的应用程序被终止,您也想恢复状态。

于 2012-04-27T23:16:22.060 回答
1

不,这实际上只调用了超类 onPause() 和 onResume() 而没有做任何其他事情。编辑框中的值保留在那里,因为即使应用程序暂停,仍然在活动堆栈中等待。但是,Android 可以终止您暂停的活动,并且您的数据将会丢失。因此,您必须在 onPause 上保存它们并在 onResume 上恢复它们​​以避免这种情况。

于 2012-04-27T23:18:34.223 回答
0

您在微调器中的值仍然相同,因为该应用程序尚未被杀死。它只是在内存中放置了一个暂停状态。如果应用程序被销毁,您的微调器的值将返回到 onCreate 方法以及它们在开始时具有的任何值。

在此处查看每种方法的作用-> https://developer.android.com/reference/android/app/Activity.html

于 2012-04-27T23:20:13.467 回答
0

您只需要在onDestroy()调用时保存状态。这只发生在您使用后退按钮或操作系统Activity在它处于停止状态时杀死它时。

如果您Activity被部分遮挡,它将被暂停,但如果它完全被遮挡,它将被停止。

当它再次位于堆栈顶部时,它将恢复或启动。

实验用于在每个事件发生时Log写入消息LogCat,然后您将能够看到它们何时以及为何被调用。

于 2012-04-27T23:21:11.923 回答