【发布时间】:2011-01-31 10:16:33
【问题描述】:
我有一个应用程序,我想在我的应用程序运行时向通知栏显示我的应用程序图标,并且我还希望用户单击通知栏中的我的应用程序图标时 我的应用程序将打开。这个怎么做?请帮忙!
【问题讨论】:
标签: android
我有一个应用程序,我想在我的应用程序运行时向通知栏显示我的应用程序图标,并且我还希望用户单击通知栏中的我的应用程序图标时 我的应用程序将打开。这个怎么做?请帮忙!
【问题讨论】:
标签: android
要创建状态栏通知,请在您的 onCreate 方法中执行此操作:
获取对 NotificationManager 的引用:
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
实例化通知:
int icon = R.drawable.notification_icon;
CharSequence tickerText = "Hello";
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, tickerText, when);
定义通知的扩展消息和意图:
Context context = getApplicationContext();
CharSequence contentTitle = "My notification";
CharSequence contentText = "Hello World!";
Intent notificationIntent = new Intent(this, MyClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
将通知传递给 NotificationManager:
private static final int HELLO_ID = 1;
mNotificationManager.notify(HELLO_ID, notification);
就是这样。您的用户现已收到通知。
【讨论】:
已接受的答案已弃用。这是显示对话框的方法,来自 google 的 documentation。
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this).setSmallIcon(R.drawable
.logo_listy).setContentTitle("My notification").setContentText("Hello World!");
Intent resultIntent = new Intent(this, ResultActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(ResultActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
【讨论】:
一些建议:
【讨论】:
您需要发布带有待处理意图的通知,其中包含启动应用的意图。 请参阅http://developer.android.com/guide/topics/ui/notifiers/notifications.html 了解一般如何操作,http://javablogs.com/Jump.action?id=628173 了解您可能陷入的陷阱。
【讨论】: