我面临一个奇怪的问题。在启动我的应用程序时,我正在将 Activity 连接到服务。服务连接已成功建立,并且在三星 Galaxy S5 和其他设备中也可以正常工作。但在其他设备(如 Moto E、Moto G 等)中它可以工作在 3 或 4 次启动后仅 2 或 3 次它根本不起作用。service 和 Activity 之间的通信是使用 massenger 实现的。我观察到当我的应用程序停止工作时onServiceConnected
不会被调用,但即使在这种情况下,bindservice 也会返回 true。这里提到了类似的问题,但没有答案
这就是我将服务绑定到 Activity 的方式
startService(new Intent(this,MyService.class));
boolean bound = bindService(new Intent(this,MyService.class), serviceConnection, Context.BIND_AUTO_CREATE);//bound is true everytime
下面是 MyService 的 onBind
public IBinder onBind(Intent intent) {
return messenger.getBinder();
}
这里 messenger 是 Messenger 的一个实例,用于在活动和服务之间进行通信。