В последнее время мне нужен код l oop, который обновляет пользовательский интерфейс виджета, поэтому я создал пример программы для виджетов и протестировал код l oop.
, но ниже приведен код GlobalScope.lauch. остановился после нескольких работ, когда телефон перезагружается и запускается виджет. (без перезагрузки телефона, приведенный ниже код выглядит нормально)
когда я использую приведенный ниже код с событием нажатия кнопки виджета (процедура GlobalScope.launch), он выглядит хорошо.
я не знаю, почему это случиться?
GlobalScope.launch usecase
private lateinit var localContext : Context
class SimpleTestWidget : AppWidgetProvider() {
...
override fun onEnabled(context: Context) {
Toast.makeText(context,"onEnabled",Toast.LENGTH_SHORT).show()
localContext = context
GlobalScope.launch {
//infinite while loop : just for test
while(true) {
delay(6000)
withContext(Dispatchers.Main) {
Toast.makeText(localContext,"GlobalLaunchTest",Toast.LENGTH_SHORT).show()
}
}
}
}
}
при перезагрузке телефона, окно сообщения Toast появляется несколько раз. но через некоторое время он не работает.
вы можете воспроизвести его на эмуляторе android или на реальном устройстве телефона. (в моем случае просто 4 ~ 5 раз работает)