Как сохранить состояние соединения между многими видами деятельности? - PullRequest
1 голос
/ 03 апреля 2019

Согласно rxandroidble, dispose () должен вызываться в onPause () Activity lifeCycle, тогда соединение BLE будет закрыто? А также Я могу подключить устройство BLE только в новой Деятельности, и если я не вызову dispose (), он получит BleAlreadyConnectedException («Уже подключен к устройству с MAC-адресом ***»), когда я подключаюсь к устройству BLE в новой Деятельности .

Итак, как мне сохранить состояние соединения между операциями?

1 Ответ

2 голосов
/ 04 апреля 2019

Чтобы сохранить ссылку на что-либо более длительное, чем жизненный цикл Activity, необходимо переместить ссылку за пределы области действия этого Activity.

. На платформе Android существуетЕсть несколько способов достичь этого разделения жизненных циклов.По книжному подходу будет Service, который может быть запущен Activity и остановлен другим.Действия могут связываться с Service, например, с помощью привязки - просто убедитесь, что Service запущен, поскольку его можно убить, если оставить его без каких-либо связанных клиентов (действий).

Интерфейс Service может варьироваться в зависимости от конкретного случая - вам придется спроектировать то, что наилучшим образом соответствует вашим потребностям.

Альтернативным (обескураженным) подходом может быть шаблон синглтона .

...