像Pandora /服务如何实际工作的任务杀手幸存的服务?

时间:2011-02-05 02:02:40

标签: android service background task long-running-processes

首先,这并非旨在使英国媒体报道和其他不良行为永久化。我知道很多人会说“不要这样做”,但我保证会尊重用户。

我正在构建一个应用程序,我希望服务无限期运行。几个问题:

  1. 高级任务杀手中是否列出了服务?或只是活动?

  2. 与Skype,Swype等一直在运行的服务(设置 - >应用程序 - >运行服务)有什么关系?我发现Skype可能是一个比任何市场应用程序具有更高权限的进程(如Verizon或HTC打包到内核中),但Swype是我安装的(Beta for Incredible)。那么它如何设法始终在后台运行?此外 - 高级任务杀手没有列出这些项目。

  3. 潘多拉如何运作。即使你执行任务杀戮它仍会继续运行?此外,由于音乐保持流畅播放,因此不会重新启动。

  4. 理想情况下,我想构建一个Pandora式的应用程序,用户明确地按下OFF按钮,但它会幸免于触发像我这样的快乐任务杀手。这将是用户意识到/将同意的功能。

1 个答案:

答案 0 :(得分:3)

  

我正在构建一个应用程序,我希望服务可以无限期运行。

无论何处可以避免,都不建议这样做。默认情况下,它不起作用,因为Android对于非前台服务停止此练习的每个传递版本变得越来越激进(见下文)。

  

那么它如何设法始终在后台运行?

Swype是一个输入法编辑器。因此,即使某些内容关闭,它也会在此后不久重新启动,以便为EditText小部件提供服务。我想Android可能不会打扰关闭此服务,因为它很可能在短时间内再次需要它,但这只是猜测。

  

潘多拉如何运作。它甚至在你任务杀死它时仍然继续运行?

任务杀手在Android 2.2上被取消了,所以问题可能就是任务杀手根本无法在您的设备上运行。

除此之外,您还必须询问Pandora或Advanced Task Killer的作者,他们都不一定在监视StackOverflow。

  

理想情况下,我想构建一个Pandora式的应用程序,用户明确地按下OFF按钮,但它会幸免于触发像我这样的快乐任务杀手。这将是用户意识到/将同意的功能。

使用startForeground()来换掉Android而不会关闭(否则会发生)Notification可见,以便用户记住“哦,是的,我确实同意让这项服务运行无限期地,因为它不断地为我提供价值,而不仅仅是一些无法使用AlarmManager的麻烦编码器的产物。此外,通常Notification可让用户轻松访问上述OFF按钮。