0

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

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

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

鉴于所有这一切,我相信我想要的是服务在必要时启动凭据表单——服务可以做到这一点吗?如果不是,那么实现这一点的替代方法是什么?

4

2 回答 2

2

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

于 2010-02-26T22:58:29.960 回答
1

一个服务不应该直接启动一个活动。这在 Notifications 的文档中有明确说明。您可以在此链接查看(请参阅第二段)。

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

  1. isValidated()如果用户已被验证,则向服务添加一个返回 true 的方法。
  2. Activity A、B 或 C 应该isValidated()首先检查用户是否被验证。如果不是,则 Activity 应显示来自 F。
于 2011-03-17T08:35:04.667 回答