奇妙な問題に直面しています。アプリの起動時にアクティビティをサービスに接続しています。サービス接続が正常に確立され、Samsung galaxy S5 やその他のデバイスでも正常に動作します。しかし、Moto E、Moto G などの他のデバイスでは動作します3回か4回発射した後、2回か3回だけで、まったく機能しません。サービスとアクティビティ間の通信は、マッサージャーを使用して実現されます。アプリが動作を停止するonServiceConnected
と呼び出されないことがわかりましたが、この場合でも bindservice は true を返します。同様の問題はここに記載されていますが、回答はありません
これは、サービスをアクティビティにバインドする方法です
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 のインスタンスであり、アクティビティとサービスの間で通信します。