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