我有一个Android应用程序,它应该始终在后台处于活动状态。我已经将它构建为普通的Android应用程序。它工作得很好,但是,有时它会自行停止(或通过Android操作系统),并且必须重新运行它。这不是因为造成错误,这是因为它可能是一个正常的应用程序。应用程序本身(或通过Android操作系统)停止
我该如何在后台进行工作?
UPDATE:
应用程序具有GUI。
我有一个Android应用程序,它应该始终在后台处于活动状态。我已经将它构建为普通的Android应用程序。它工作得很好,但是,有时它会自行停止(或通过Android操作系统),并且必须重新运行它。这不是因为造成错误,这是因为它可能是一个正常的应用程序。应用程序本身(或通过Android操作系统)停止
我该如何在后台进行工作?
UPDATE:
应用程序具有GUI。
由于内存限制,Android操作系统可能在任何给定时间终止进程,您可以学习how Android manages memory here。由于@Karakuri提到开始一项服务会使它不太可能被终止,另一个使用服务的优点是,即使在它被杀死的情况下,当内存限制允许时,操作系统也会尝试恢复:
注意这意味着大部分时间你的服务正在运行,如果系统在高内存压力下可能会被系统杀死。如果发生此 ,系统将稍后尝试重新启动该服务。
您可以从Android dev site了解有关服务的更多详细信息。
可以一个服务有GUI吗? –
不,如果它有GUI,它不再是服务。您可以将“活动”和“服务”组合在一起,其中“活动”提供了GUI,服务提供了后台功能。你可以检查这个[StackOverflow问题](http://stackoverflow.com/questions/14695537/android-update-activity-ui-from-service)关于如何推动从服务到活动的变化的想法。 – Kai
创建服务并致电startForeground()
使其成为前台服务。它不会阻止它被杀,只是使它不太可能,因为Android会试图保持它比非前台服务更长的时间。请注意,使用前台服务时,您需要在状态栏上使用图标进行持续通知。
假设您正在使用Service
。如果您从服务的onStartCommand()
返回START_STICKY
,那么即使android必须终止该服务,只要资源空闲,它就会重新启动。
可以有服务有GUI吗? –
@MariusKavansky服务不能像活动一样直接显示视图,但服务可以显示活动通知(在状态栏中),这样做会使其成为前台服务。 –
我需要这个应用程序有GUI。 –
你应该使用服务 – Geros