我认为并希望这不是旧的常见问题。 这就是我想要的:
我该怎么做?
答案 0 :(得分:1)
我该怎么做?
步骤#4与步骤#1和步骤#2相同,所以你在两种情况下都做同样的事情:同时调用startService()
和bindService()
。在您的情况下,让startForeground()
在onCreate()
服务中工作(而不是onStartCommand()
),因为您不需要多次执行此操作(每startService()
次调用一次)。并确保通过stopService()
或stopSelf()
- only have the service running when it is actively delivering value to the user明确规定何时停止该服务。
答案 1 :(得分:1)
如果你调用startService,当服务已经运行时,什么都不会发生。服务自动创建为单例,因此框架将只处理1个实例。
在服务的onCreate()中,请致电startForeground(int id, Notification notif)
。
当您将其设置为startForeground时,销毁绑定到该服务的Activity不会销毁它,因此没有问题。
现在只需绑定到活动的onResume中的服务,并在onPause或onStop中取消绑定(无论哪种最适合,都可以在不同的设置中使用)。