Sobes.tech
Junior — Middle

Android'de BroadcastReceiver'ın çalışma süresini nasıl uzatabilirsiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Android'de BroadcastReceiver varsayılan olarak çok kısa süre çalışır — sadece onReceive() metodu çalışırken. Süreyi artırmak için:

  • onReceive() içinden uzun süreli işlemler yapacak bir arka plan servisi (Service) başlatabilirsiniz.
  • onReceive() içinde goAsync() kullanarak PendingResult alabilir ve işlemi daha sonra tamamlayabilir, iş bitiminde finish() çağırabilirsiniz.

goAsync() ile örnek:

public void onReceive(Context context, Intent intent) {
    final PendingResult pendingResult = goAsync();
    new Thread(() -> {
        // Uzun süren işlem
        // ...
        pendingResult.finish();
    }).start();
}

Bu şekilde, onReceive() zaman sınırını aşabilir ve daha uzun süreli görevler yapabilirsiniz.