Junior
Cum să creezi o notificare în Android?
sobes.tech AI
Răspuns de la AI
Pentru a crea o notificare pe Android, trebuie să urmați pașii următori:
- Creați un canal de notificare (pentru API nivel 26 și mai mare).
- Construiți notificarea folosind
NotificationCompat.Builder. - Afișați notificarea prin intermediul managerului de notificări.
// Crearea canalului de notificare (API 26+)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String channelId = "my_channel_id";
CharSequence channelName = "Canalul Meu";
String channelDescription = "Descriere pentru Canalul Meu";
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel(channelId, channelName, importance);
channel.setDescription(channelDescription);
// Înregistrarea canalului în sistem
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
// Crearea builder-ului de notificare
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "my_channel_id") // Specificați ID-ul canalului
.setSmallIcon(R.drawable.ic_notification) // Pictograma notificării
.setContentTitle("Titlul notificării") // Titlu
.setContentText("Textul notificării") // Text
.setPriority(NotificationCompat.PRIORITY_DEFAULT); // Prioritate
// Crearea PendingIntent pentru acțiunea la apăsarea notificării
// De exemplu, deschiderea unei activități
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); // Flag pentru API S+
builder.setContentIntent(pendingIntent);
// Afișarea notificării
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(this);
int notificationId = 1; // ID unic pentru notificare
notificationManagerCompat.notify(notificationId, builder.build());
Componente principale ale notificării:
- Pictogramă mică:
setSmallIcon(), afișată în bara de stare. - Titlu:
setContentTitle(), textul principal al notificării. - Text:
setContentText(), text suplimentar. - Canal de notificare (API 26+): Grup de notificări cu setări comune.
- PendingIntent: Acțiunea executată la apăsarea notificării.
De asemenea, se poate adăuga o imagine mare (setStyle(new NotificationCompat.BigPictureStyle())), butoane de acțiune (addAction()), seta sunet, vibrație și alți parametri.