Sobes.tech
Junior — Middle

Milyen módszerek használhatók Androidon feladatok végrehajtására, hogy azok periodikusan és aszinkron módon fussanak?

sobes.tech MI

Válasz az MI-től

Az Androidon végzett feladatok időszakos és aszinkron végrehajtásához több megközelítés is létezik:

  1. WorkManager — ajánlott módszer késleltetett és időszakos feladatokhoz, amelyeknek akkor is futniuk kell, ha az alkalmazás bezáródik vagy az eszköz újraindul. Lehetővé teszi az időszakosság, a futtatási feltételek (pl. töltés, Wi-Fi) beállítását.

  2. AlarmManager — lehetővé teszi feladatok indítását adott időpontban vagy ismétlődően, de további feldolgozást igényel a háttérben való működéshez és az új Android verziókkal való kompatibilitáshoz.

  3. JobScheduler — API a háttérfeladatok ütemezéséhez, figyelembe véve az eszköz feltételeit (töltés, hálózat). Az Android 5.0-tól támogatott.

  4. Handler és Timer — egyszerű időszakos feladatokhoz az aktív alkalmazáson belül, de nem alkalmas hosszú távú háttérfeladatokra.

Példa a WorkManagerrel egy időszakos feladatra:

val workRequest = PeriodicWorkRequestBuilder<MyWorker>(15, TimeUnit.MINUTES).build()
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
    "MyPeriodicWork",
    ExistingPeriodicWorkPolicy.REPLACE,
    workRequest
)

Ahol MyWorker egy Worker-ből származó osztály, amelyben a feladat logikája van megvalósítva.