2010-03-28 88 views
1

我有一个活动,有两个按钮,启动和停止。如果用户按下开始按钮,则使用Context.startService创建服务。停止按钮调用Context.stopService。让服务从活动中独立(Android)

我希望停止按钮是销毁服务的唯一方法。现在,如果我使用任务管理器结束活动,该服务也会被终止。有什么办法可以避免这种情况?

编辑:另外,我想知道一个任务管理器(如高级任务管理器免费)如何杀死活动和服务?由于没有我的onDestroy()和这样的方法被调用。

回答

1

现在,如果我使用 任务管理器结束活动,服务杀害 好。有什么办法可以避免这种情况?

不需要记住用户可以通过内置于Android的Settings应用程序随时停止您的服务。

另外,我想知道一个任务 管理器(如高级任务管理器 免费)如何杀死活动和服务?

请参阅ActivityManager#restartPackage()。请记住,这种方法的行为在未来可能会发生变化。

+0

好的。非常感谢!但我知道一些似乎正在做这件事的应用程序。例如Lookout(http://www.androlib.com/android.application.com-lookout-zznx.aspx)。如果我杀了这个活动,我仍然可以看到Lookout的NotificationService正在运行。与手势搜索一样。他们如何做到这一点? – shuwo 2010-03-28 20:21:09

+0

这是一个很好的问题,请问Lookout的作者。我不是其中之一。而且,用户对他们的设备保持控制很重要。至少通过设置应用程序无法停止的任何服务对Android都不利。毕竟,他们使用的任何技术都可能被恶意软件本身利用。所以,虽然我认为任务杀手绝对是过度使用,但永久服务更糟糕。 – CommonsWare 2010-03-28 20:45:18

+0

@shuwo他们可能已将活动和服务分为不同的流程。 – 2010-03-28 23:59:35

-1

我应该想象没有办法做到这一点,否则将不可能结束服务,因为停止它的按钮将被销毁。我认为你所能做的就是关闭活动中的其他所有内容,但让它继续运行以保持服务。