Android不要通过Application来保存数据或其他其他变量

5个月前 (12-11) 0 点赞 0 收藏 0 评论 9 已阅读

在我们的应用程序中,很多地方可能用到同一个数据。很多时候我们可能不想通过Intent在Activity之间传递数据或者持久化的存放这些数据。

我们可能会将这些数据存在在Application中,这样我们就可以在所有的Activity中访问了,这个方法简单,但是实际上是错误的。你的程序很可能会因为报空指针错误。

我们在MainActivity中获取Appliction实例,并为name变量赋值,然后跳转到SecondActivity中再去获取name变量的值,并调用大写方法打印出来。

这里有个场景,就是当我们按Home键APP位于后台时,当内存不足时,系统会回收我们的APP。

现在我们模拟一下这个场景后台内存不足杀死APP情况,有多种方式:

adb命令杀死进程,android studio DDMS 的stop process等等方式,我用的是

当我们杀死进程后,再次点击APP图标时

直接报空指针错误了。

原因是:Application对象不会一直在内存中存在,可能被杀掉,不会恢复以前的信息,会创建一个Application对象,然后重新打开之前用户按Home键离开的那个Activity。


Android不要通过Application来保存数据或其他其他变量

本文收录在
0评论

登录

忘记密码 ?

切换登录

注册