როგორ განსხვავდება 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);