Ինչպես են տարբերվում Android-ում BroadcastReceiver-ի դինամիկ և ստատիկ գրանցման մեթոդները։
sobes.tech AI
Պատասխան AI-ից
Android-ում կա երկու եղանակ՝ BroadcastReceiver գրանցելու համար՝ ստատիկ և դինամիկ:
Ստատիկ գրանցվում է հավելվածի մանիֆեստում (AndroidManifest.xml): Այս ընդունողը ակտիվանում է համակարգի կողմից, նույնիսկ եթե հավելվածը չի աշխատում: Դա հարմար է համակարգային հաղորդագրությունները լսելու համար, բայց Android 8.0 (Oreo)-ից սկսած, ստատիկ գրանցումը սահմանափակված է մեծ մասի դեպքերում:
Դինամիկ գրանցվում է ծրագրային կերպով կոդում (հաճախ Activity կամ Service) registerReceiver() մեթոդի միջոցով: Այս ընդունողը ակտիվ է միայն այն ժամանակ, երբ այն գրանցած օբյեկտը կենդանի է, և պահանջում է բացահայտ unregisterReceiver() կանչը: Դինամիկ գրանցումը ավելի ճկուն է և թույլ է տալիս լսել հաղորդագրությունները միայն աշխատանքի ժամանակ:
Դինամիկ գրանցման օրինակ:
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// իրադարձության մշակումը
}
};
// onCreate() կամ onStart()-ում
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
// onDestroy() կամ onStop()-ում
unregisterReceiver(receiver);