Junior — Middle
Môžete vysvetliť, čo znamená pojem ANR v kontexte mobilných aplikácií a ako s ním bojovať?
sobes.tech AI
Odpoveď od AI
ANR (Application Not Responding) je situácia v Android aplikácii, keď používateľské rozhranie prestane reagovať na akcie používateľa dlhšie ako 5 sekúnd. K tomu dochádza, ak je hlavný vlákno (UI thread) zaneprázdnené dlhodobou operáciou a nemôže spracovávať udalosti.
Na boj s ANR:
- Presuňte ťažké operácie (sieť, databáza, výpočty) do pozadia (napríklad pomocou AsyncTask, Coroutines, Thread).
- Používajte optimalizované algoritmy a minimalizujte čas práce v UI vlákne.
- Sledujte logy a používajte profilovacie nástroje na identifikáciu úzkych miest.
Príklad použitia Kotlin Coroutines pre prácu na pozadí:
GlobalScope.launch(Dispatchers.IO) {
val data = loadDataFromNetwork()
withContext(Dispatchers.Main) {
updateUI(data)
}
}