如果我使用下面的代码,这将恢复已输入EditTextfields和选定的微调项目的文本吗?
@Override
protected void onPause(){
super.onPause();
}
@Override
protected void onResume(){
super.onResume();
}
或者我必须告诉它保存当前值然后在恢复活动时恢复吗?当我使用模拟器时,如果我没有这些方法,我会说回家,然后再次运行我的应用程序,它总是加载回以前的状态,所以我的问题是这实际上是否做了antyhing?
答案 0 :(得分:1)
不,这段代码没有做任何事情。您将覆盖这些方法,但为它们提供仅调用父实现的实现。这与首先不覆盖它们相同。
暂停/恢复时,保存/恢复状态并非绝对必要。您需要手动执行某些状态保存的唯一原因是,即使您的应用程序被终止也要恢复状态。
答案 1 :(得分:1)
不,这实际上只调用了超类onPause()和onResume()而没有做任何其他事情。编辑框中的值保留在那里,因为即使应用程序暂停,活动堆栈上仍然存在等待。 但Android可以终止您暂停的活动,您的数据也会丢失。所以你必须将它们保存在onPause并在onResume上恢复它们以避免这种情况。
答案 2 :(得分:0)
您在微调器中的值仍然相同,因为应用尚未被杀死。它只是暂停状态仍在内存中。如果应用程序被销毁,则微调器的值将返回onCreate方法以及它们在开始时具有的任何值。
在这里查看每种方法的用途 - > https://developer.android.com/reference/android/app/Activity.html
答案 3 :(得分:0)
只需在调用onDestroy()
时保存状态。只有当您使用后退按钮或操作系统在处于停止状态时杀死Activity
时才会发生这种情况。
如果Activity
被部分遮挡,它将被暂停,但如果它被完全遮挡,则会被停止。
当它再次位于堆栈顶部时,它将恢复或启动。
尝试使用Log
在每个事件发生时向LogCat
写入消息,然后您就可以看到他们被调用的时间和原因。