这个android啊,真是诡异,怎么整都整不明白。很多基础的东西都不明白。 天天写代码。大部分在瞎写。看教程这么写没问题就记住了,一直这样写。具体为什么这样写,
activity是如何调度的。进程间通信的机制很多东西都模糊。不清楚。唉。这样不行啊。
自己实验的 onSaveInstanceState是在系统有可能或者正在销毁用户activity时候,系统提供在activity保存数据的一个机会。网上都是这么说的。很不明白。必须得自己实验。
在以下几种情况下会叫到。
1 用户按下HOME键。此时不知道以后什么时候再叫到这个activity. 这属于有可能被销毁。也就是说 用户HOME操作后,系统通知你,这个活动可能不知道什么时候我会给你清掉。也可能不清掉。但是真正清掉的时候我就不告诉你了。这个时候通知你,你该做什么做什么。以后这个活动是否存在就不好说了。
2 用户长按HOME启动其它活动,这个和1一样的理解。
3 按下屏幕power ,屏幕变暗。
突然想起来,注意一点。如果是activity主动的申请结束自己。那系统不会提醒保存数据。
4 屏幕旋转,如果不指定configchange属性。那也会调用这个方法。
为了理解。举个生活中的例子吧。
比如一个罪犯,就是一个activity. 法院宣布 8月份以后的某天有可能会执行死刑,建议你可以写遗书了。这句话就类似,用户HOME操作,系统会通知活动此后的某个时间可能会杀死你。此时你可以保存数据了。
比如真的杀掉这个这个活动,比如屏幕旋转了,此时会调onRestoreInstanceState 来回复数据。