我面临一个奇怪的问题。在我的应用程序启动时,我将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的一个实例,用于在活动和服务之间进行通信。
答案 0 :(得分:1)
当您的活动暂停或销毁时,您应该unbind
。看看here。
编辑:
如果您希望自己的服务继续投放,请使用startService
启动它并将其设为前景。在恢复和暂停时,您可以绑定和取消绑定您的活动。我在做我的论文时使用了这种方法,这是一个Android的媒体播放器:)