Sobes.tech
Junior — Middle

Android'de BroadcastReceiver'ın dinamik ve statik kayıt yöntemleri nasıl farklıdır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Android'de BroadcastReceiver kaydetmenin iki yolu vardır — statik ve dinamik.

Statik, uygulamanın manifestinde (AndroidManifest.xml) kaydedilir. Bu alıcı, uygulama çalışmasa bile sistem tarafından etkinleştirilir. Sistem olaylarını dinlemek için kullanışlıdır, ancak Android 8.0 (Oreo) sürümünden itibaren çoğu olay için statik kayıt sınırlandırılmıştır.

Dinamik ise kodda (genellikle Activity veya Service içinde) registerReceiver() yöntemi kullanılarak programatik olarak kaydedilir. Bu alıcı, yalnızca kaydedildiği nesne hayattayken aktiftir ve açıkça unregisterReceiver() çağrısı gerektirir. Dinamik kayıt daha esnektir ve bileşen çalışırken yayın mesajlarını dinlemeye olanak tanır.

Dinamik kayıt örneği:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // olay işleme
    }
};

// onCreate() veya onStart() içinde
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

// onDestroy() veya onStop() içinde
unregisterReceiver(receiver);