我想使用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)到该服务并且它没有启动,它只会停止。

10-07 20:54