Предоставление системных сервисов через DIAndroid

Форум для тех, кто программирует под Android
Anonymous
Предоставление системных сервисов через DI

Сообщение Anonymous »

Я использую Koin для внедрения зависимостей в приложении Android и хочу предоставить BluetoothManager через DI.
Сейчас у меня есть такой модуль:

Код: Выделить всё

val bluetoothModule = module {

single {
androidContext().getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
}
}
Я не уверен, что это действительно безопасно с точки зрения жизненного цикла Android/утечки памяти:
  • Может ли этот подход вызвать какие-либо проблемы жизненного цикла, утечки или «устаревшие» ссылки при включении/выключении Bluetooth или когда приложение переходит в фоновый/передний план?
  • Поддерживает ли BluetoothManager или BluetoothAdapter как одиночные Koin (т. е. синглтоны для всего приложения) нормально, учитывая, что они поступают из getSystemService
  • Есть ли какие-либо другие проблемы с этим подходом, о которых мне не известно?
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/798 ... through-di

Вернуться в «Android»