Sobes.tech
Junior — Middle

Ինչպե՞ս իրականացնել Broadcast Receiver կոմպոնենտ, որը գործում է միայն ընթացիկ հավելվածի շրջանակում։

sobes.tech AI

Պատասխան AI-ից

Որպեսզի Broadcast Receiver-ը աշխատի միայն ընթացիկ հավելվածի շրջանակներում, այն պետք է գրանցվի դինամիկ կերպով կոդով, ոչ թե մանիֆեստում: Դինամիկ գրանցմամբ registerReceiver()-ի միջոցով, ընդունիչը կստանա միայն այն հաղորդագրությունները, որոնք ուղարկվում են ներսում հավելվածի:

Օրինակ:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // իրադարձության մշակումը
    }
};

// Գրանցում Activity կամ Service-ում
IntentFilter filter = new IntentFilter("com.example.MY_ACTION");
registerReceiver(receiver, filter);

// Մի մոռացեք անգրանցել
unregisterReceiver(receiver);

Այսպիսով, դուք սահմանափակում եք Broadcast Receiver-ի գործողության տարածքը ընթացիկ հավելվածով, քանի որ համակարգային կամ այլ հավելվածներ չեն կարող ուղարկել այդպիսի տեղական հեռարձակման հաղորդագրություններ։