Android 开发中大家都是如何保存一些全局常用的参数或 信息?

2016-11-22 10:41:51 +08:00
 royliu
比如 App 登录后一些后台返回的用户信息,需要全局共享使用的,是建一个类使用 public static 存放呢,还是在继承 Application 封装成对象通过 get , set 存取?一直对 Android 的 static 使用有点模糊,求指教,谢谢!
8700 次点击
所在节点    Android
4 条回复
yescpu
2016-11-22 10:53:28 +08:00
Android 内存数据放哪儿多有可能被回收,所以正常流程是先保存硬盘、 load 到内存,用的时候先先 check 内存有没有,没有还得再 load 到内存
enenaaa
2016-11-22 11:47:12 +08:00
如果数据少, 那哪个地方用到就存哪里。
如果数据较多, 就建一个类集中存放, 顺便还能加本地存储功能。
xingda920813
2016-11-22 15:38:57 +08:00
这两种方法是一样的。单进程情况下, Application 只有一个对象, static 也只有一份。多进程情况下,每个 JVM 都有一个 Application 被创建,不同 JVM 中加载的类在内存空间上彼此独立,即使是 static 也是有多份的(因为在不同的虚拟机)。

如果只需要内存缓存的话, static 是可以的,用起来还简单一些。目前 Android 使用的 JVM 并没有类卸载 (class-unloading) 机制,类一旦被加载进来,只要进程不死,是不会卸载掉的。从这点上看, Application 的生命周期和 static 是一样的。

对于后台返回的用户信息,应该是要做持久化的。否则 App 杀掉后,登录信息会丢失。可以用 JSON 化后放入 SP 等方法。
Chrisplus
2016-11-22 16:27:48 +08:00
放在 application 里面,跟 applicatuion 同生命周期。

多周期跨周期的读写考虑持久化,比较轻量的数据直接读写 sharedpreference 得了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/322289

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX