Android Notification erstellen

This article is also available in: enEnglisch

Auf dieser Seite zeigen wir, wie man unter Android eine Notification erstellt. Dieser Artikel hat nichts mit einer Push Benachrichtigung zu tun, da hier lediglich eine lokale Benachrichtigung erstellt wird. Der Code beinhaltet zwei Klassen. Die MainActivity ist die Startseite der App. Wenn der Button gedrückt wird, so wird die Benachrichtigung erstellt. Die Benachrichtigung wird in der Statusleiste angezeigt und es wird der Klingelton abgespielt. Wird auf die Nachricht geklickt, öffnet sich die Notifications-Klasse mit einer Textview. Hier könnte eine Nachricht für den Nutzer stehen. Wichtig ist es auch, die Notifications-Klasse in der Manifest zu definieren.
Android - create a notification
Android Version API LEVEL
> 4.0.3 15

Code für die Notification

Zuerst müssen zwei Layout-Files erstellt werden. Bei der MainActivity enthält das Layout nur einen Button, bei der Notifications-Klasse enthält das Layout nur eine TextView.
MainActivity.java:

package com.aeqweb.notify;

import ...

public class MainActivity extends Activity {
    Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Notify("Title", "You have pressed the button!");
            }
        });
    }

    private void Notify(String title, String text) {
        Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder builder =
                new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.ic_lncr)
                        .setSound(sound)
                        .setColor(0xffffffff)
                        .setContentTitle(title)
                        .setContentText(text);
        Intent notificationIntent = new Intent(this, Notification.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
                PendingIntent.FLAG_UPDATE_CURRENT);
        builder.setContentIntent(contentIntent);
        NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        manager.notify(0, builder.build());
    }
}
Notification.java:

package com.aeqweb.notify;

import ...

public class Notification extends Activity{
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.notification);
    }
}