今天在做app应用升级功能,需要下载安装包,然后再安装,过程中需要授权使用存储空间,和安装未知应用权限。
应用正常运行的过程中,跳转到安装未知应用权限页面,开启“允许来自此来源的应用”,然后返回应用发现app内存数据丢失问题,通过追踪日志发现,重新执行oncreate,给用户造成app并没有重新启动的错觉,但是内存数据都已经清除了。
解决方法:
1、进入app时就申请所有权限,
2、使用SharedPreferences将授权后需要用到的数据保存起来,有时建议的模式是将数据保存在Application对象中,并认为它可以在所有活动中使用。这个解决方案很简单,但它是错误的。当Android静默杀死应用程序以回收一些内存时,应用程序变量可以为null。所以解决方案是将它们保存在持久存储中。