为什么服务不应该开始活动?

时间:2012-06-29 14:35:42

标签: android service

在状态通知文档here中,我读到了:

  

后台服务永远不应该自行启动活动   为了接收用户交互。该服务应该改为   创建状态通知,以便在何时启动活动   由用户选择。

为什么这个“不应该”?

先谢谢

3 个答案:

答案 0 :(得分:6)

由于服务在后台发生,因此用户很可能在您的服务运行时执行其他操作。如果你通过放弃你的活动来打断他们正在做的事情,那么他们最多会感到困惑,最糟糕的是感到烦恼。

他们建议使用通知,因为用户会收到警告您要开始活动,但他们可以选择在他们准备好时通过在通知栏中点击它来“按照自己的时间”启动它。

答案 1 :(得分:1)

您的服务在想要获得用户互动时不知道用户正在做什么。如果用户在另一个应用程序中,创建一个新活动会杀死(或至少让其睡觉)另一个应用程序,可能会打扰用户(如果他正在玩游戏,你可以杀死游戏,如果他正在做一些更严重的事情,它可能是甚至更具破坏性。)

答案 2 :(得分:1)

可能从用户体验的角度来看。如果从后台进程启动一个Activity,它对用户来说看起来很奇怪。将用户置于他们正在做的任何事情的中间是非常突兀的,这样你的应用程序可以优先考虑。状态栏通知为他们提供了根据需要进行响应的选项,或者只要他们认为合适就忽略该操作。