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

时间:2012-02-24 16:17:52

标签: android android-service

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

3 个答案:

答案 0 :(得分:21)

来自developer.android.com

  

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

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

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

答案 1 :(得分:6)

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

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

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

答案 2 :(得分:4)

建议的方法之一:

  

已启动的服务可以使用startForeground(int, Notification)。用于将服务置于前台状态的API,系统将其视为用户主动了解的内容,因此在内存不足时不会成为查杀的候选者。 (在理论上理论上可能会导致服务在当前前台应用程序的极端内存压力下被杀死,但实际上这不应该是一个问题。)

其他方式是在服务停止时重新启动服务(系统将在服务停止时调用onDestroy())