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:)