Diese Art von Benachrichtigung ist veraltet, wie aus den Dokumenten ersichtlich:
@java.lang.Deprecated
public Notification(int icon, java.lang.CharSequence tickerText, long when) { /* compiled code */ }
public Notification(android.os.Parcel parcel) { /* compiled code */ }
@java.lang.Deprecated
public void setLatestEventInfo(android.content.Context context, java.lang.CharSequence contentTitle, java.lang.CharSequence contentText, android.app.PendingIntent contentIntent) { /* compiled code */ }
Besserer Weg
Sie können eine Benachrichtigung wie folgt senden:
// prepare intent which is triggered if the
// notification is selected
Intent intent = new Intent(this, NotificationReceiver.class);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
// build notification
// the addAction re-use the same intent to keep the example short
Notification n = new Notification.Builder(this)
.setContentTitle("New mail from " + "test@gmail.com")
.setContentText("Subject")
.setSmallIcon(R.drawable.icon)
.setContentIntent(pIntent)
.setAutoCancel(true)
.addAction(R.drawable.icon, "Call", pIntent)
.addAction(R.drawable.icon, "More", pIntent)
.addAction(R.drawable.icon, "And more", pIntent).build();
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, n);
Bester Weg
Der obige Code benötigt mindestens API-Level 11 (Android 3.0).
Wenn Ihre Mindest-API-Stufe niedriger als 11 ist, sollten Sie die Hilfsbibliothek NotificationCompat-Klasse wie folgt.
Wenn Sie also mindestens die API-Stufe 4+ (Android 1.6+) anstreben, verwenden Sie diese:
import android.support.v4.app.NotificationCompat;
-------------
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.mylogo)
.setContentTitle("My Notification Title")
.setContentText("Something interesting happened");
int NOTIFICATION_ID = 12345;
Intent targetIntent = new Intent(this, MyFavoriteActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, targetIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
NotificationManager nManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
nManager.notify(NOTIFICATION_ID, builder.build());
15 Stimmen
Ähm... eine Dienstleistung ist einen Kontext!
20 Stimmen
Gott, ich bin so ein Trottel. Ok, tut mir leid, dass ich die Zeit von allen verschwendet habe.
32 Stimmen
Das ist in Ordnung - es ist eine gute Google-Frage.
0 Stimmen
Wie Ihr zweiter Kommentar :D :D
0 Stimmen
Dieser Beitrag hat mir gerade den Tag gerettet...