应用开发中我们可能会遇到这样的情况,当调用系统应用或者别的应用后,在回到上个应用时,页面没有恢复之前的状态,已初始化数据丢失了,这是啥子原因?
简单分析原因:
当系统资源紧张时,会根据进程的级别进行资源释放,之前打开Activity被系统回收,当该Activity再此返回前台时,系统会重启该activity,重新onCreate。于是该应用中所有内存中的变量,包括全局变量 以及 各种标志位,都会被重置为初始化状态,这样就会造成系统重启后的activity状态异常。
基本解决思路:
在onSaveInstance()中保存变量,Activity被kill掉时,会调用onSaveInstance方法;
这样在系统重启该activity,会先执行onCreate,之后会执行onRestoreInstance方法,参数里会有之前保存的变量。这样就可以根据之前的状态数据初始化Activity。