Ответ 1
Это происходит при сбое удаленной службы. Таким образом, если служба, работающая в другом процессе, чем ваш клиент, сбой при некотором исключении, вы теряете соединение и получаете обратный вызов.
Я возился с службами Android, и я обнаружил, что ServiceConnection.onServiceConnected()
получает достаточно предсказуемое значение при привязке к службе.
Однако мой метод onServiceDisconnected()
, кажется, никогда не называется, даже после того, как VM умирает.
Я зарегистрировал отладочные сообщения в службе и показал, что все потоки завершены и т.д. Я знаю, что службы реализованы как процессы; есть ли потоки, о которых я не знаю, которые препятствуют выходу процесса?
Это происходит при сбое удаленной службы. Таким образом, если служба, работающая в другом процессе, чем ваш клиент, сбой при некотором исключении, вы теряете соединение и получаете обратный вызов.