即使用户退出应用后,如何让服务在后台运行?

Sau*_*wal 32 android android-service

我正在开发一个应用程序,如果用户启用了特定功能(在我的应用程序中),我将启动该服务.我想在用户退出我的应用程序后继续运行此服务.我怎样才能做到这一点?请帮助

EGH*_*HDK 22

来自developer.android.com

服务是在后台运行以执行长时间运行操作或执行远程进程工作的组件.服务不提供用户界面.例如,当用户在不同的应用程序中时,服务可能在后台播放音乐,或者它可能通过网络获取数据而不会阻止用户与活动的交互.另一个组件(例如活动)可以启动服务并让它运行或绑定到它以与之交互.服务作为服务的子类实现,您可以在服务开发人员指南中了解有关它的更多信息.

因此,只要您创建服务,并且用户退出您的应用程序,它仍将运行.就像上面的例子一样.

这应该为您提供所需的所有信息:https: //developer.android.com/guide/components/services.html

  • 如果现在在手机上非常常见的任务管理器终止服务,这将无法继续服务.服务中的onStartCommand(...)需要返回START_STICKY (9认同)
  • 是的,如果服务被杀,START_STICKY将重新创建该服务. (2认同)

Bha*_*ara 6

您可以将警报管理器用于任何后台服务.

对于特定时间,您希望执行可以提供服务的内容.

对于继续过程,您可以从警报管理器开始服务.


And*_*dyW 5

android建议的方式之一:

启动的服务可以使用startForeground(int, Notification)。API 将服务置于前台状态,系统认为它是用户主动意识到的东西,因此不会在内存不足时被杀死。(在当前前台应用程序的极端内存压力下,服务在理论上仍然可能被终止,但实际上这不应该是一个问题。)

另一种方法是在服务停止时重新启动服务(系统将在停止的服务上调用 onDestroy())