我想使用bindService
方法创建Service。
但是,当我关闭一个 Activity 时,我的服务被破坏了,我不希望那样。
我尝试使用startForeground(NOTIFICATION_ID, notification);
服务onCreate将服务置于前台,但服务仍会销毁。
现在,我尝试调用两种方法来同时启动Service:
Intent bindIntent= new Intent(this, ServiceC.class);
startService(bindIntent);
bindService(bindIntent, onService, BIND_AUTO_CREATE);
通过调用这两种方法,Service不会被破坏。我的应用程序使用此方法可以正常工作。
有人可以向我解释这是一个好方法还是不是,您可以告诉我
startForeground(NOTIFICATION_ID, notification);
为什么不起作用吗?使用bindService的最佳方法是什么,但同时我不希望该服务自行销毁。
最佳答案
我使用了相同的解决方案,这是一个合法的解决方案。来自Service ref:
startForeground()
不起作用,因为它只是试图防止该服务被系统杀死,但是它的生命周期是另一回事:如果没有更多东西绑定(bind)到该服务并且它没有启动,它只会停止。