onServiceConnected не вызывается после bindService после 3 или 4 запуска приложения

У меня странная проблема. При запуске приложения я подключаю Activity к сервису. Сервисное соединение успешно устанавливается и работает нормально в Samsung galaxy S5 и других устройствах. Но в других устройствах, таких как Moto E, Moto G и т. Д., Это работает. только 2 или 3 раза после 3 или 4 запуска это доза не работает вообще. Связь между сервисом и деятельностью достигается с помощью мастера. Я заметил, что когда мое приложение перестает работать 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

public IBinder onBind(Intent intent) {

    return messenger.getBinder();
}

Здесь Messenger является экземпляром Messenger для связи между деятельностью и обслуживанием.

1 ответ

Ты должен сделать unbind когда ваша деятельность приостановлена ​​или уничтожена. Посмотрите здесь.

Изменить: если вы хотите, чтобы ваш сервис продолжал работать, запустите его с startService и сделать его передним. Чем вы можете связать и открепить свою деятельность при возобновлении и приостановке. Я использовал этот подход, когда делал свою диссертацию, которая была медиаплеером для Android:)

Другие вопросы по тегам