在3或4次启动应用程序后,在bindService之后不会调用onServiceConnected

时间:2015-02-18 08:04:59

标签: android android-service bindservice onserviceconnected

我面临一个奇怪的问题。在我的应用程序启动时,我将Activity连接到service.Service连接已成功建立,并且在三星galaxy S5和其他设备上也能正常工作。但在Moto E,Moto G等其他设备中等它在3或4次发射后仅工作2或3次,它根本不起作用。 服务和活动之间的沟通是通过使用者实现的。我观察到当我的应用程序停止工作时onServiceConnected没有被调用,但即使在这种情况下,bindservice也会返回true。类似的问题提到here但没有回答

这是我将服务绑定到Activity

的方法
    startService(new Intent(this,MyService.class));
    boolean bound = bindService(new Intent(this,MyService.class), serviceConnection, Context.BIND_AUTO_CREATE);//bound is true everytime 

下面是onBind Of MyService

public IBinder onBind(Intent intent) {

    return messenger.getBinder();
}

这里的messenger是Messenger的一个实例,用于在活动和服务之间进行通信。

1 个答案:

答案 0 :(得分:1)

当您的活动暂停或销毁时,您应该unbind。看看here

编辑: 如果您希望自己的服务继续投放,请使用startService启动它并将其设为前景。在恢复和暂停时,您可以绑定和取消绑定您的活动。我在做我的论文时使用了这种方法,这是一个Android的媒体播放器:)