写了一个测试的 Activity
对onCreate onStart onStop onResume onPause onSaveInstanceState onRestoreInstanceState 进行了重载
然后在我的xml里面有一个edittext 我将edittext里面的内容写为“test”
然后我按Home键
调用的顺序是 onSaveInstanceState - onPause - onStop
再次启动这个Activity的时候,调用的顺序是onStart-onResume edittext里面的内容还是我写的 test
问题来了:
为什么edittext的内容还会是 test?虽然有看到调用了 onSaveInstanceState ,但是并没有看到调用 onCreate 或者 onRestoreInstanceState 将 onSaveInstanceState保存的相关数据传进来啊。
------解决方案--------------------
系统自动保存的,你看下sdk代码就明白了
------解决方案--------------------
按下home键,其实activity还在运行,只是在后台而已,所以相关的数据还在,因为他一直在运行
你可以换个思维想一下,如果这个activity一直在前端运行,而你又没有主动修改edittext的内容,那么edittext的内容是不会变的
------解决方案--------------------
------解决方案--------------------
如果你把edit中的内容改掉test->aaa,你在看看重启activity后恐怕不是aaa了吧
------解决方案--------------------