【发布时间】:2014-12-20 23:22:56
【问题描述】:
我正在学习 Android 并编写我的第一个大型应用程序。它是客户端-服务器应用程序,它使用谷歌登录机制,未来将使用 Facebook 登录。
我编写了应用程序的基本部分,例如“使用 Google 登录”、与网络服务的连接、一些可以做某事的活动。
现在我有一个问题:如何将所有内容放在一起?
我应该在哪里存储“应用程序状态”,例如当前用户的电子邮件或他是否登录的信息?现在这些数据在用户登录后被销毁的“ActivityGoogleLogin”类中。
另一个问题 - 假设我有类似“MyHttpClient”对象的东西,我想从每个 Activity 访问它。如何处理?
在 C#(这是我的背景)中,我只是创建了一个静态类来保存我的应用程序状态,并且很容易从任何地方访问它。
我知道在 Java 中存在类似 "singleton" 的东西,但我不知道如何使用它。它似乎比 C# 静态类更复杂,我什至不必编写访问器,也不必初始化它。
【问题讨论】:
-
用于存储简单信息,可以使用
SharedPreferences。 -
你可以在Java中创建一个带有静态参数的类。我不熟悉 C#,但我确信它是一样的。类本身不能是静态的,只有它的成员,但它的工作方式相同。
-
@Barodapride 虽然这是可能的,但它对 OO 不太友好。而且它不是持久的。
-
当我有带有静态参数的类时 - 我必须实例化它吗?我应该在哪里初始化它?在主活动中?
-
@Code-Apprentice 我需要存储复杂的对象,而不是简单的信息。