Android Broadcast Receiver Notification

Android Yayın Alıcıları ile Bildirim Gönderme

Giriş

Android yayın alıcıları, sistem veya diğer uygulamalar tarafından gönderilen yayınlara yanıt veren bileşenlerdir. Bildirim göndermek için yayın alıcıları kullanmak, kullanıcıları uygulamanızdaki önemli olaylar hakkında bilgilendirmenin etkili bir yoludur. Bu makale, Android yayın alıcılarını kullanarak bildirim gönderme sürecini ayrıntılı olarak açıklayacaktır.

Yayın Alıcı Oluşturma

Bir yayın alıcısı oluşturmak için bir alt sınıf BroadcastReceiver oluşturmanız gerekir. Bu alt sınıf, onReceive() adlı bir yöntemi geçersiz kılmalıdır. Bu yöntem, yayın alındığında çağrılacaktır.

“`java
public class MyBroadcastReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    // Yayın alındığında yapılacak işlemler
}

}
“`

Bildirim Oluşturma

Bir bildirim oluşturmak için NotificationCompat.Builder sınıfını kullanabilirsiniz. Bu sınıf, bildirimin başlığını, içeriğini, simgesini ve diğer özelliklerini ayarlamanıza olanak tanır.

java
NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
.setContentTitle("Bildirim Başlığı")
.setContentText("Bildirim İçeriği")
.setSmallIcon(R.drawable.ic_notification);

Yayın Alıcısını Kaydetme

Yayın alıcısını kaydetmek için registerReceiver() yöntemini kullanmanız gerekir. Bu yöntem, yayın alıcısını belirli bir eyleme kaydeder.

java
IntentFilter filter = new IntentFilter();
filter.addAction("com.example.MY_ACTION");
context.registerReceiver(myBroadcastReceiver, filter);

Yayın Gönderme

Bir yayın göndermek için sendBroadcast() yöntemini kullanabilirsiniz. Bu yöntem, belirli bir eyleme sahip bir yayın oluşturur ve yayın alıcılarına gönderir.

java
Intent intent = new Intent();
intent.setAction("com.example.MY_ACTION");
context.sendBroadcast(intent);

Bildirim Gösterme

Bildirimi göstermek için NotificationManager sınıfını kullanabilirsiniz. Bu sınıf, bildirimi sistem tepsisine ekler.

java
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICATION_ID, builder.build());

Örnek

Aşağıdaki örnek, bir düğmeye tıklandığında bir bildirim gönderen bir yayın alıcısı uygulamaktadır:

“`java
public class MainActivity extends AppCompatActivity {

private BroadcastReceiver myBroadcastReceiver;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    myBroadcastReceiver = new MyBroadcastReceiver();
    IntentFilter filter = new IntentFilter();
    filter.addAction("com.example.MY_ACTION");
    registerReceiver(myBroadcastReceiver, filter);

    findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setAction("com.example.MY_ACTION");
            sendBroadcast(intent);
        }
    });
}

@Override
protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(myBroadcastReceiver);
}

public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, CHANNEL_ID)
                .setContentTitle("Bildirim Başlığı")
                .setContentText("Bildirim İçeriği")
                .setSmallIcon(R.drawable.ic_notification);

        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(NOTIFICATION_ID, builder.build());
    }
}

}
“`

Faydalı Kaynaklar


Yayımlandı