-3

我面临一个奇怪的问题。在启动我的应用程序时,我正在将 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 的一个实例,用于在活动和服务之间进行通信。

4

1 回答 1

1

unbind当您的活动暂停或销毁时,您应该这样做。看看这里

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

于 2015-02-18T09:05:07.700 回答