Kotlin API «launchWhenCreated» перестает прослушивать обновления базы данных после многократного выполнения. ⇐ Android
Kotlin API «launchWhenCreated» перестает прослушивать обновления базы данных после многократного выполнения.
В моей системной службе Android я использую «launchWhenCreated» для запуска сопрограммы в качестве наблюдателя, и она прослушивает обновления из пользовательского интерфейса. Если пользовательский интерфейс обновляет значение, оно будет сохранено в файле .pb(protobuf), а сопрограмма наблюдателя выполнит блок кода.
// Использование LifecycleCoroutineScope в этом { поток событий() lifecycleScope.launchWhenCreated { запуск (Диспетчеры.IO) { создавать() } запуск (Диспетчеры.IO) { stateFlow.collect { состояние -> если (состояние) { отлаживать() } } } } } частное развлечение EventFlow() { lifecycleScope.launchWhenCreated { запуск { mDBRepo.getValue() // //Выполняем этот код. } } } } В большинстве случаев это явление происходит правильно, но бывают случаи, когда выполнение блока кода просто прекращается после того, как пользовательский интерфейс обновляет какие-либо значения. Я уверен в таком поведении, поскольку вижу, что значения обновляются в файле protobuf(.pb), но вообще не вижу выполнения сопрограммы наблюдателя.
Если я перезагружаю телефон, все работает нормально.
В моей системной службе Android я использую «launchWhenCreated» для запуска сопрограммы в качестве наблюдателя, и она прослушивает обновления из пользовательского интерфейса. Если пользовательский интерфейс обновляет значение, оно будет сохранено в файле .pb(protobuf), а сопрограмма наблюдателя выполнит блок кода.
// Использование LifecycleCoroutineScope в этом { поток событий() lifecycleScope.launchWhenCreated { запуск (Диспетчеры.IO) { создавать() } запуск (Диспетчеры.IO) { stateFlow.collect { состояние -> если (состояние) { отлаживать() } } } } } частное развлечение EventFlow() { lifecycleScope.launchWhenCreated { запуск { mDBRepo.getValue() // //Выполняем этот код. } } } } В большинстве случаев это явление происходит правильно, но бывают случаи, когда выполнение блока кода просто прекращается после того, как пользовательский интерфейс обновляет какие-либо значения. Я уверен в таком поведении, поскольку вижу, что значения обновляются в файле protobuf(.pb), но вообще не вижу выполнения сопрограммы наблюдателя.
Если я перезагружаю телефон, все работает нормально.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение