我同意米尔特!
在onPause():
“如果一个活动失去了焦点,但仍然可见(也就是说,一个新的非全尺寸或透明的活动集中在你的活动之上),它暂停了。暂停的活动是完全活着的(它保持了所有的状态会员信息并保留在窗口pipe理器中),但是在极低的内存情况下可能会被系统杀死。
如果您在不按Back的情况下交换应用程序(按住HOME),则操作系统将会打开“暂停”。 当你回到你的活动(再次按住HOME)onResume你应该有所有的私人variables保留。 但是你无法控制用户,对吗?
如果您预计用户将要离开您的应用程序,并且操作系统会调用您的onStop,那么如果您打算从停止的地方恢复,则最好保存数据。
我也有一个计时器,我需要保存经过的时间,所以当用户返回我可以恢复数据。 这里是我的例子来保存:
@Override public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); // Save UI state changes to the savedInstanceState. // This bundle will be passed to onCreate if the process is // killed and restarted. savedInstanceState.putLong("elapsedTime", elapsedTime); // etc. }
我的代码恢复:
@Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); // Restore UI state from the savedInstanceState. // This bundle has also been passed to onCreate. elapsedTime = savedInstanceState.getLong("elapsedTime"); }
把这些方法放在你的课堂上,你很好。 请记住,在我的情况下string“elapsedTime”是系统的一个关键,它必须是唯一的。 对您想要保存的每一条数据使用唯一的string。 例如“startClock”,“ClockTextColor”等…