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.