从android中的通知栏启动一个应用程序

我有一个应用程序,我希望在我的应用程序运行时将我的应用程序图标显示到通知栏,我还希望当用户点击通知栏中显示的应用程序图标时,我的应用程序将打开。 这个怎么做? 请帮忙!

要创建状态栏通知,请在onCreate方法中执行此操作:

  1. 获取NotificationManager的引用:

    String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); 
  2. 实例化通知:

      int icon = R.drawable.notification_icon; CharSequence tickerText = "Hello"; long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickerText, when); 
  3. 定义通知的扩展消息和意图:

      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); 
  4. 将通知传递给NotificationManager:

      private static final int HELLO_ID = 1; mNotificationManager.notify(HELLO_ID, notification); 

    而已。 您的用户现已收到通知。

已接受的答案已弃用。 以下是从谷歌文档中显示对话框的方法。

 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()); 

几点建议:

  • 如果您想在通知栏中显示图标,则必须发送一些通知。
  • 单击通知图标无法启动应用程序。 可以通过单击通知来启动它,如果用户下拉通知栏,则可以使用该通知。 为此,您需要创建PendingIntent。

您需要发布具有待处理意图的通知,其中包含启动应用程序的意图。 有关如何执行此操作的信息,请参阅http://developer.android.com/guide/topics/ui/notifiers/notifications.html ;有关陷阱的信息,请参阅http://javablogs.com/Jump.action?id=628173掉进。