android 手机内存不足,数据回收

来源:互联网 发布:广告页面设计软件 编辑:程序博客网 时间:2024/04/28 20:39

一:情况当App从前台到后台,再玩打开一些其他的应用时,手机内存不足,自己的app还在后台,就会被手机回收数据(除了editText会自动保存,Google已经做了,其他都会清空)。 这个Activity的控件初始化,数据,静态变量都会被回收。存在本地的Sqlite数据和SharedPreferences的数据不会被回收。

二:解决:

 1.onSaveInstanceState() 方法会被回调来保存数据状态当手机内存不足的时候,Activity的onSaveInstanceState()在onPause()和onStop()中间执行。

@Override    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {        super.onSaveInstanceState(outState, outPersistentState);    }

2.onSaveInstanceState() 方法来保存数据状态在手机内存不足,Activity的onSaveInstanceState()在onPause()和onStop()中间执行。

  onRestoreInstanceState()方法来恢复数据,通过Bundle获取onSaveInstanceState()里面存储的数据。

@Override    public void onRestoreInstanceState(Bundle savedInstanceState, PersistableBundle persistentState) {        super.onRestoreInstanceState(savedInstanceState, persistentState);    }

3.每次内存不足,启动app,被回收的activity会从onCreate(),onRestoreInstanceState()跑起。里面的数据恢复,根据activity的情况来选择在什么位置恢复。

三:别人的总结:

http://blog.csdn.net/ithouse/article/details/53319589

http://www.2cto.com/kf/201408/325306.html

http://blog.csdn.net/wozaixiaoximen/article/details/51775835

阅读全文
0 0