当我打开项目的活动时,我调用 startService(Intent intent)
方法启动一个新服务。
当活动被销毁时,服务不应该被杀死(因为我没有使用 bindService()
方法),但事实是当我关闭活动时,服务被杀死,并且一秒钟后系统创建一个新服务(我验证过了,系统再次调用我的服务的 onCreate()
方法)。我该怎么做才能只保留一个服务?谢谢。
android:process=":somenamehere"
startForeground(int id, Notification notification)
方法。当服务完成所需工作后,可以通过调用 stopForeground(boolean removeNotification)
来停止前台服务。 "startForeground" 需要通知作为参数,因为每个前台服务都必须显示通知以便用户知道它正在运行。android:process
属性并没有被很好地解释在这里。如果你没有正确设置这个属性,很难推断出一个activity.finish()会摧毁你的服务。 - jevorastartForeground()
。"只有在返回到活动并停止它时,您才可以停止服务"——有许多方法可以让用户停止前台服务,其中大多数不涉及"返回到活动并停止它"。 - CommonsWare编辑:请参考CommonsWare的答案
旧回答:您应该重写public int onStartCommand(Intent intent, int flags, int startId)
方法,并返回START_STICKY
值作为服务的模式。
这将使您的服务在活动被销毁或甚至退出应用程序时继续工作,除非您明确调用stopService(Intent)
。
android:process=":somenamehere"
,这对你有用吗?? - Sudhanshu Gaur