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() убакыт чектөөсүнөн качып, узак убакытка иштетүү мүмкүнчүлүгү пайда болот.