当前位置: 代码迷 >> Android >> 按Home键后当前Activity执行的动作,保存的数据,该如何处理
  详细解决方案

按Home键后当前Activity执行的动作,保存的数据,该如何处理

热度:95   发布时间:2016-05-01 22:02:53.0
按Home键后当前Activity执行的动作,保存的数据
写了一个测试的 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的内容是不会变的
------解决方案--------------------
探讨

那为什么要调用 onSaveInstanceState ,有何用意呢? 我可以利用这个function做什么东西呢?

------解决方案--------------------
如果你把edit中的内容改掉test->aaa,你在看看重启activity后恐怕不是aaa了吧
------解决方案--------------------
探讨

我看到有说 onSaveInstanceState 会在我的activity被系统kill的时候调用的
  相关解决方案