Android服务正确启动/绑定,但仅第一次有效

5

当第一次调用服务时,我有一个能够正确启动和绑定的服务,但是当其他活动调用同一服务时,连续的绑定会失败。

代码如下:

activity.startService(new Intent().setClass(activity, ServerListenerService.class));        

xmppServiceConnection = new ServiceConnection() {
        public void onServiceDisconnected(ComponentName name) {
            ServerActivityConnection.this.xmppService = null;
        }

        public void onServiceConnected(ComponentName name, IBinder binder) {
            //set everything up
        }
    };

activity.bindService(new Intent().setClass(activity, ServerListenerService.class), xmppServiceConnection, Activity.BIND_AUTO_CREATE);

第二次调用activity.bindService后,服务连接的onServiceConnected方法没有被调用。我使用一个连接类来进行绑定,所以这个方法对于两个活动是相同的。服务也已经在清单文件中正确添加。
有什么想法吗?
非常感谢。

如果你已经找到了解决方案,请在这里分享,因为我也遇到了同样的问题。 - bhaskar
1个回答

0
在我的情况下,问题与bindService()相关。我只在onResume()中调用了一次它 - 遵循某些示例。似乎应该每次启动服务时都调用bindService()(在我的情况下使用ContextCompat.startForegroundService())。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接