我有一个Android应用程序,它应该始终在后台运行。我把它建成普通的Android应用程序。它工作得很好,但是,有时它会自行停止(或通过Android OS)并且必须重新运行它。这不是因为导致错误,这是因为它可能是正常的应用程序。
如何在后台一直工作?
更新:
应用程序具有GUI。
答案 0 :(得分:1)
创建服务并致电startForeground()
以使其成为前台服务。它不会阻止它被杀死,只是让它不太可能,因为Android会试图让它比非前台服务更长时间保持活着。请注意,使用前台服务时,您需要在状态栏上放置一个带有图标的持续通知。
答案 1 :(得分:1)
由于内存限制,Android操作系统可能会在任何给定时间终止进程,您可以了解how Android manages memory here。正如@Karakuri所说,启动服务会使终止服务的可能性大大降低,使用服务的另一个好处就是,即使在它被杀死的情况下,操作系统也会在内存限制允许的时候尝试恢复:
请注意,这意味着您的服务大部分时间都在运行 如果它受到严重的记忆压力,就会被系统杀死。如果这 发生这种情况,系统稍后会尝试重启服务。
您可以从Android dev site了解有关服务的详细信息。
答案 2 :(得分:1)
假设您使用的是Service
。如果从START_STICKY
服务返回onStartCommand()
,那么即使android必须终止该服务,只要资源空闲,它就会重新启动。