在Android上使用全球数据的推荐方法是什么?

时间:2014-10-31 20:25:18

标签: android design-patterns architecture

我们假设我们使用网络授权开发了一款应用。我们需要一些"全球"用于确定用户是否已记录的服务。如果用户已登录,则该服务必须向身份用户提供一些数据(例如cookie,身份验证令牌等),否则该服务必须能够设置此数据。

有几种方法可以做到这一点。我们可以使用静态上下文(单例或仅静态字段)来存储此数据。我们也可以创建一些服务来获取所有这些数据。

但谷歌推荐的方式是什么?什么方式在思想上是正确的?也许有其他方法可以实现它?

3 个答案:

答案 0 :(得分:1)

不知道Google推荐的是什么,但如果您需要的对象只要您的应用程序存在,那么它就是Application对象。

因此,您自己的MyApplication extends Application是子类,在那里定义您需要的任何字段,然后在MyApplication

清单和访问中声明(MyApplication)getApplication()

答案 1 :(得分:0)

创建描述您的应用模型的经理(单身模式)。是的,请确保它不包含活动,服务等的上下文。如果需要上下文,请务必致电getApplicationContext()

答案 2 :(得分:0)

Singelton是最简单的方式(+设计模式)

但是有时候使用singeltons时可能会出现问题:如果应用程序进程被杀死,这种情况几乎无疑会在后台留下太长时间,你的单例将被重新创建,所以你的私有int数据将重置为默认值。

如果您不想使用过多的共享数据,可以使用共享偏好来避免这种情况。

否则你可以尝试扩展Application类。

希望帮助