У меня нет большого опыта в реализации приложений для Android, которые часто используют Service
, и я не смог найти хороших советов или примеров, которые могли бы помочь мне в SO или github (или просто погуглить), поэтому я решил спросить мой собственный вопрос.
Когда мое приложение запущено, оно должно начать обнаруживать близлежащие устройства-маяки Bluetooth LE, и оно должно продолжать делать это, по крайней мере, до тех пор, пока оно не перейдет в фоновый режим. Единственное, что мне нужно от этих маяков, это получить основные данные (например, UUID) того, чей сигнал самый сильный.
Как лучше всего это сделать?
В настоящее время у меня есть только обычный Service
, который запускает метод startLeScan()
на BluetoothAdapter
, как только к нему что-то привязано. Тем не менее, у меня есть более 1 Activity
в приложении, и я не думаю, что привязка к Service
и отвязка от него в каждом из них - лучшее, что можно сделать. Я думал о запуске Service
вместо привязки к нему, но затем его остановка может потребовать большого количества кода - не совсем просто определить, когда приложение Android переводится в фоновый режим.
Любые подсказки и советы могут быть полезными.