android里怎么可靠地存取全局变量

daguaio_O 2012-03-27 02:45:34
试过static,试过application,可是2个都不可靠。一旦应用走向后台,内存不足,资源被回收后,就连application都被析构了。
那么如果要存取一些全局的对象,该如何做??

难道只能存在文本和sharedprefence之类里了么?
...全文
271 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
daguaio_O 2012-03-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mikebai 的回复:]

只是现在要存的只是一些生命周期和application一样长的一些数据

------------------------
appli里面的被咔嚓了,还能存在哪?
我觉得没别的方法,等高人出现
[/Quote]

如果是activity里,那么有onSaveInstanceState(Bundle)这个方法,在activity资源被系统回收时,可以调用,然后在onCreate(Bundle) 里获取。

但application里没有类似的方法,所以处理起来比较麻烦。
mikebai 2012-03-27
  • 打赏
  • 举报
回复
只是现在要存的只是一些生命周期和application一样长的一些数据

------------------------
appli里面的被咔嚓了,还能存在哪?
我觉得没别的方法,等高人出现
daguaio_O 2012-03-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mikebai 的回复:]

LZ自问自答得很好,结贴把

作全局设置变更的时候,必须存储到媒介上,

if(已经被kill了)
reload();
[/Quote]

只是现在要存的只是一些生命周期和application一样长的一些数据,存到媒介上是实在是最后一条路,不知道有没有其他办法了
himi_ 2012-03-27
  • 打赏
  • 举报
回复
真机很给力的,测试机就让你知道你代码实现了没,真要看效果还是得去真机上。
mikebai 2012-03-27
  • 打赏
  • 举报
回复
LZ自问自答得很好,结贴把

作全局设置变更的时候,必须存储到媒介上,

if(已经被kill了)
reload();
daguaio_O 2012-03-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 himi_ 的回复:]

你一定要这么可靠的话,就放在服务器上吧 哈哈哈哈
[/Quote]
.......
只是好几次application被系统回收,重新初始化后,全局变量都没了。
(测试机里有个破机子,程序因为要调用系统相机,每次一调用,application就被重新初始化了)
既然application这么不可靠,不知道android推荐这么一个对象来让我们存取全局变量干嘛。

himi_ 2012-03-27
  • 打赏
  • 举报
回复
你一定要这么可靠的话,就放在服务器上吧 哈哈哈哈

80,357

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧