0

首先,这不是为了延续英国媒体报道软件和其他不良做法。我知道很多人会说“不要那样做”,但我保证尊重用户。

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

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

  2. Skype、Swype 等始终在运行的服务(设置 -> 应用程序 -> 运行服务)是怎么回事?我意识到 Skype 可能是一个具有比任何市场应用程序更高权限的进程(例如由 Verizon 或 HTC 打包到内核中),但 Swype 是我安装的(难以置信的 Beta 版)。那么它是如何始终在后台运行的呢?此外 - Advanced Task Killer 未列出这些项目。

  3. 潘多拉是如何工作的。即使你杀死它,它也会继续运行?此外,它不会重新启动,因为音乐一直在流畅地播放。

理想情况下,我想构建一个潘多拉式的应用程序,用户明确点击关闭按钮,但它会在触发像我这样的快乐任务杀手时幸存下来。这将是用户知道/会同意的功能。

4

1 回答 1

3

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

在可以避免的地方,不建议这样做。默认情况下,它不起作用,因为随着每个通过的版本,Android 越来越积极地停止对非前台服务的这种做法(见下文)。

那么它是如何始终在后台运行的呢?

Swype 是一个输入法编辑器。因此,即使某些东西将其关闭,它也会在此后不久再次启动,以提供EditText小部件。我想 Android 可能不会费心关闭这项服务,因为它很有可能在短期内再次需要它,但这只是一个猜测。

潘多拉是如何工作的。即使你杀死它,它也会继续运行?

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

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

理想情况下,我想构建一个潘多拉式的应用程序,用户明确点击关闭按钮,但它会在触发像我这样的快乐任务杀手时幸存下来。这将是用户知道/会同意的功能。

使用startForeground(), 来权衡 Android 不会关闭您(否则会发生)与Notification可见的,以便用户记住“哦,是的,我确实同意让该服务无限期运行,因为它不断为我提供价值,而不是只是一些懒得使用AlarmManager“. 此外,通常这Notification使用户可以轻松访问上述关闭按钮。

于 2011-02-05T02:35:02.580 回答