【问题标题】:Android Service - Can it pop an Activity?Android服务 - 它可以弹出一个活动吗?
【发布时间】:2010-02-26 22:54:05
【问题描述】:

我有三个独立的应用程序 A、B 和 C。它们都使用服务 S。当 A、B 或 C 连接到服务 S 并且服务 S 必须启动时,它必须使用表单 F 从用户那里收集凭据。

我希望用户体验是这样的:

  1. 从 Android 主菜单,用户点击其中一个应用程序; A、B 或 C。
  2. Form F 出现是因为服务尚未启动。
  3. 用户填写表格 F 并点击确定。
  4. 进行验证。
  5. 如果凭据验证成功,则会显示所选应用(A、B 或 C)中的相应 Activity。
  6. 成功验证后,任何后续启动的应用程序都不需要进行身份验证,它们只需从该应用程序中的一个 Activity 开始。
  7. 如果验证不成功并且用户按下返回按钮,主菜单会再次出现。

考虑到所有这些,我相信我希望服务在必要时启动凭据表单——服务可以这样做吗?如果没有,有什么替代方法可以实现这一点?

【问题讨论】:

    标签: android android-service


    【解决方案1】:

    一个Service就是一个Context,一个Context可以启动一个Activity:
    https://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent)

    【讨论】:

      【解决方案2】:

      Service 不应该直接启动 Activity。这在 Notifications 的文档中有明确说明。您可以在这个link查看它(请参阅第二段)。

      您描述的场景可以用另一种方式处理:

      1. 向服务isValidated() 添加一个方法,如果该方法返回true 用户已通过验证。
      2. 活动 A、B 或 C 应 使用isValidated()首先检查用户是否被验证或 不是。如果不是,Activity 应该显示来自 F。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多