Android服务 - 它可以弹出一个活动吗?

时间:2010-02-26 22:54:05

标签: android android-service

我有三个独立的应用程序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. 成功验证后,任何启动的后续应用程序都不需要进行身份验证,他们只需从该应用程序中的“活动”开始。
  7. 如果验证失败并且用户按下后退按钮,则会再次显示主菜单。
  8. 鉴于所有这些,我认为我想要的是服务在必要时启动凭证表单 - 服务可以这样做吗?如果没有,那么实现这个的替代方法是什么?

2 个答案:

答案 0 :(得分:2)

服务是一个上下文,一个上下文可以启动一个活动:
https://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent)

答案 1 :(得分:1)

服务永远不应该直接启动活动。有关通知的文档中明确说明了这一点。您可以在此link查看(请参阅第二段)。

您描述的方案可以替代方式处理:

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