Sobes.tech
Junior — Middle

Androidте BroadcastReceiver иштөө мөөнөтүн кантип узартуу керек?

sobes.tech AI

AIден жооп

Android-деги BroadcastReceiver әдепкі боюнча өтө кыска убакыт иштейт — onReceive() методу иштеп жатканда гана. Убакытты узартуу үчүн:

  • onReceive() ичинен узак мөөнөттүү операцияларды аткарган фондук кызматты (Service) ишке киргизсе болот.
  • goAsync() колдонуп, onReceive() ичинде PendingResult алууга жана ишти кийинчерээк бүтүрүү үчүн finish() чакырууга болот.

Мисал менен goAsync():

public void onReceive(Context context, Intent intent) {
    final PendingResult pendingResult = goAsync();
    new Thread(() -> {
        // Узак мөөнөттүү операция
        // ...
        pendingResult.finish();
    }).start();
}

Мындай жол менен, onReceive() убакыт чектөөсүнөн качып, узак убакытка иштетүү мүмкүнчүлүгү пайда болот.