【问题标题】:How to "put everything together" in Android app?如何在 Android 应用程序中“将所有内容放在一起”?
【发布时间】:2014-12-20 23:22:56
【问题描述】:

我正在学习 Android 并编写我的第一个大型应用程序。它是客户端-服务器应用程序,它使用谷歌登录机制,未来将使用 Facebook 登录。

我编写了应用程序的基本部分,例如“使用 Google 登录”、与网络服务的连接、一些可以做某事的活动。

现在我有一个问题:如何将所有内容放在一起?

我应该在哪里存储“应用程序状态”,例如当前用户的电子邮件或他是否登录的信息?现在这些数据在用户登录后被销毁的“ActivityGoogleLogin”类中。

另一个问题 - 假设我有类似“MyHttpClient”对象的东西,我想从每个 Activity 访问它。如何处理?

在 C#(这是我的背景)中,我只是创建了一个静态类来保存我的应用程序状态,并且很容易从任何地方访问它。

我知道在 Java 中存在类似 "singleton" 的东西,但我不知道如何使用它。它似乎比 C# 静态类更复杂,我什至不必编写访问器,也不必初始化它。

【问题讨论】:

  • 用于存储简单信息,可以使用SharedPreferences
  • 你可以在Java中创建一个带有静态参数的类。我不熟悉 C#,但我确信它是一样的。类本身不能是静态的,只有它的成员,但它的工作方式相同。
  • @Barodapride 虽然这是可能的,但它对 OO 不太友好。而且它不是持久的。
  • 当我有带有静态参数的类时 - 我必须实例化它吗?我应该在哪里初始化它?在主活动中?
  • @Code-Apprentice 我需要存储复杂的对象,而不是简单的信息。

标签: android application-state


【解决方案1】:

另一个问题 - 假设我有类似“MyHttpClient”的对象,我想从每个 Activity 访问它。

如果每个Activity 都需要一个HTTP 连接,他们应该各自创建自己的MyHttpClient 实例,而不是尝试在不同的活动之间共享同一个对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    相关资源
    最近更新 更多