Как связать две активности Android с одной службой? - PullRequest
10 голосов
/ 12 февраля 2011

Я хотел бы попросить привести пример, когда два разных действия (кнопка в первом действии открывают второе действие) связаны с одним сервисом (AIDL и т. Д.) Я пробовал много разных учебных пособий, но они только о том, как сделать одно действие -> один сервис.

Ответы [ 3 ]

11 голосов
/ 14 июля 2011

Это, вероятно, старый, но я все равно постараюсь ответить на него ...

В Android, поскольку только один Activity может связываться с Service одновременно, и только один Activity может быть показан одновременно, нет реальной причины хотеть связывать время.

Но, если хотите, лучшее решение - это связать Service в методе onResume() и отсоединить его в методе onPause(). Это позволяет вам предоставлять доступ к услуге двум не связанным мероприятиям, одновременно имея только одну привязку.

2 голосов
/ 12 февраля 2011

Каждый Activity отвечает за связывание и открепление от Service.Обычно это делается в onResume / onPause или onStart / onStop, в зависимости от ваших требований.Один Activity не может связать другой Activity с Service.Так оно и есть.:)

0 голосов
/ 24 апреля 2015

Вы можете сделать это с помощью Messenger, который обеспечивает связь IPC без использования AIDL.Вот как вы можете привязать к сервису несколько действий.

Если вам нужна ваша служба для связи с удаленными процессами, вы можете использовать Messenger для предоставления интерфейса для вашей службы.Этот метод позволяет выполнять межпроцессное взаимодействие (IPC) без использования AIDL.

Посмотрите на эту ссылку .Когда вы увидите код, вы обнаружите случай переключения с обработчиком, который будет обслуживать несколько запросов, которые вы будете отправлять вам от нескольких действий / компонентов.Благодарю.Я надеюсь, что ответ поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...