Sobes.tech
Junior — Middle

Android-də BroadcastReceiver-in işləmə müddətini necə uzətmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Android-də BroadcastReceiver standart olaraq çox qısa müddət işləyir — yalnız onReceive() metodu işləyərkən. Müddəti artırmaq üçün:

  • onReceive() içindən uzunmüddətli əməliyyatlar həyata keçirəcək arxa plan xidməti (Service) başlada bilərsiniz.
  • onReceive() daxilində goAsync() istifadə edərək PendingResult əldə edə və işləməni daha sonra tamamlayaraq, finish() çağıraraq bitirə bilərsiniz.

goAsync() nümunəsi:

public void onReceive(Context context, Intent intent) {
    final PendingResult pendingResult = goAsync();
    new Thread(() -> {
        // Uzunmüddətli əməliyyat
        // ...
        pendingResult.finish();
    }).start();
}

Beləliklə, onReceive()-də vaxt məhdudiyyətindən yayınmaq və daha uzun müddət tapşırıqları yerinə yetirmək mümkündür.