0

我有一个应该一直在后台运行的 Android 应用程序。我已将其构建为普通的 Android 应用程序。它工作得很好,但是,有时它会自行停止(或由 Android 操作系统)并且必须重新运行它。这不是因为错误引起的,这可能是因为它是一个正常的应用程序。

我如何一直在后台工作?

更新

该应用程序具有 GUI。

4

3 回答 3

1

假设您使用的是Service. 如果您START_STICKYonStartCommand()服务中返回,那么即使android必须终止该服务,它也会在资源空闲后立即重新启动。

于 2013-08-05T03:44:59.483 回答
1

由于内存限制,Android OS 可能会在任何给定时间终止进程,您可以在此处了解 Android 如何管理内存。正如@Karakuri 提到的那样,启动服务将使其被终止的可能性大大降低,使用服务的另一个好处是,即使它被杀死,操作系统也会在以后内存限制允许的情况下尝试复活:

请注意,这意味着您的服务大部分时间都在运行,如果内存压力过大,它可能会被系统杀死。如果发生这种情况,系统稍后会尝试重新启动服务。

您可以从Android 开发网站了解有关服务的更多详细信息。

于 2013-08-05T03:08:31.987 回答
1

创建一个服务并调用startForeground()以使其成为前台服务。它并不能阻止它被杀死,只是降低了它的可能性,因为 Android 会尝试让它比非前台服务更长时间地存活。请注意,使用前台服务时,您需要在状态栏上放置带有图标的持续通知。

于 2013-08-05T02:35:42.280 回答