Как определить, что мой WatchFace используется или перестал использоваться

У меня есть служба, которая выполняет дополнительную работу для Android Wear. Я хочу выполнять дополнительную работу только тогда, когда пользователь видит мой циферблат.

Один из способов определить, что циферблат вызывается, — это использовать sendMessageAPI, после чего придет сообщение.

Как узнать, когда циферблат был изменен?

Является ли сообщение единственным способом добиться этого или есть какая-то чистая функция, предоставляемая WearAPI?

Заранее спасибо.


person nizam.sp    schedule 27.06.2015    source источник


Ответы (1)


Когда пользователь выбирает ваш циферблат, подкласс WatchFaceService.Engine получит обратный вызов onCreate, а когда он перестанет использоваться, он получит обратный вызов onDestroy. Выполните работу между этими двумя обратными вызовами.

person gruszczy    schedule 27.06.2015
comment
Спасибо. Да. Я попытался отправить сообщение на oncreate. Это работает нормально. Но в ondestroy сообщение не отправляется, но возможна строка журнала. Как сообщить телефону, что циферблат уничтожен? Я предполагаю, что общие настройки не относятся к часам и приложениям. - person nizam.sp; 27.06.2015
comment
Я бы не стал использовать сообщения для этого, потому что они ненадежны. Вместо этого вы должны использовать элементы данных. Я бы порекомендовал следующее: когда вы получите onCreate, запустите службу намерений, которая опубликует элемент данных с информацией об использовании циферблата. Когда вы получите onDestroy, запустите ту же службу намерений, но выполните другое действие и уничтожьте элемент данных. - person gruszczy; 27.06.2015