请指教!关于因为内存不够应用被回收的问题,如何解决或者避免?
大家都知道android的内存控制,在内存不够时会回收一些系统判断为无用的东西,我现在遇到一个问题,描述如下:
我做了一个应用A,A应用中使用到了地图服务,我是遍历手机内的地图软件,弹出一个列表供用户选择使用哪个应用查看位置信息。
当我在A应用中使用某个地图应用打开该位置信息后,再从该地图应用返回我的应用时我发现在低内存手机上很容易发生我的应用被回收了,导致我点击应用界面(从地图应用返回后我的应用原本跳到地图应用上的那个界面还在,但是所有的数据都没有了)会报空指针异常(因为都被回收了,在我的应用中所有的对象都置空了所以会报空)。
在高内存手机上我目前没有测试到,所以我得到的结论应该是手机内存太低不够运行地图软件的强制回收了我的应用的内存,导致的这个问题,现在问题来了,请问:
有没有什么比较好的机制来控制不发生这种事情?即使是低内存手机。
如果没有什么方法能控制的话能不能我通过在我的应用中保存什么东西,当发生了回收后我从地图应用中返回可以使用这个保存的对象来重现之前的界面状况?
不知道表述清没有,求解。谢谢!
[解决办法]
onSaveInstanceState这个方法不是专门用在被系统回收之前么
[解决办法]
感觉 onSaveInstanceState 就能完美解决你的问题
http://blog.sina.com.cn/s/blog_572dea1a01010ew4.html