Sobes.tech
Junior — Middle

Kā īstenot Broadcast Receiver komponenti, kas darbojas tikai pašreizējās lietojumprogrammas ietvaros?

sobes.tech AI

Atbilde no AI

Lai Broadcast Receiver darbotos tikai pašreizējā lietotnē, tas jāreģistrē dinamiski ar kodu, nevis manifestā. Ar registerReceiver() palīdzību dinamiski reģistrējot, saņēmējs saņems tikai tos raidījumus, kas tiek sūtīti lietotnes ietvaros.

Piemērs:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // notikuma apstrāde
    }
};

// Reģistrācija aktivitātē vai pakalpojumā
IntentFilter filter = new IntentFilter("com.example.MY_ACTION");
registerReceiver(receiver, filter);

// Neaizmirstiet atcelt reģistrāciju
unregisterReceiver(receiver);

Tādējādi jūs ierobežojat Broadcast Receiver darbības jomu līdz pašreizējai lietotnei, jo sistēmas vai citas lietotnes nevarēs sūtīt šādus vietējos raidījumus.