android状态栏通知图标

android状态栏通知图标,android,notifications,statusbar,Android,Notifications,Statusbar,我正试图在状态栏上设置一个图标,我无法在您单击按钮后立即查看它。 这里的问题是删除选项。我想设置,这样你就不会被删除,只要那些进入应用程序和删除 public void setNotificationToStatusBar(){ Intent intent= new Intent(this, PrefActivitySmsForwarder.class); PendingIntent pi=PendingIntent.getActivity(getApplication

我正试图在状态栏上设置一个图标,我无法在您单击按钮后立即查看它。 这里的问题是删除选项。我想设置,这样你就不会被删除,只要那些进入应用程序和删除

 public void setNotificationToStatusBar(){
      Intent intent= new Intent(this, PrefActivitySmsForwarder.class);
      PendingIntent pi=PendingIntent.getActivity(getApplicationContext(), 0,intent, 0);
      String forwarder_start_str= getResources().getString(R.string.sms_forwarding_activated);
      String app_name=getResources().getString(R.string.app_name);
      Notification n= new Notification(R.drawable.ic_launcher,forwarder_start_str, System.currentTimeMillis());
      n.setLatestEventInfo(getApplicationContext(), app_name, forwarder_start_str, pi);
      n.defaults= Notification.DEFAULT_ALL;
      nm.notify(uniqueId, n);
      finish();

  }

这就是我创建通知的方式。使用setContinuous(true)可以使其持久化

如果希望保留自己创建通知的方式,而不使用notification.Builder,可以添加这行代码来编辑通知的标志字段

notification.flags |= Notification.FLAG_ONGOING_EVENT;

你也可以这样做

    int icon = R.drawable.icon_notification;


    String msg= "hey";

    Intent notificationIntent = new Intent(context,Activity.class);

    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

    PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
                                                                .setSmallIcon(icon)
                                                                .setContentTitle(context.getString(R.string.app_name))
                                                                .setContentIntent(intent)
                                                                .setPriority(PRIORITY_LOW) 
                                                                .setContentText(msg)
                                                                .setAutoCancel(true)
                                                                .setDefaults(Notification.DEFAULT_SOUND   | 
                                                                             Notification.DEFAULT_VIBRATE | 
                                                                             Notification.DEFAULT_LIGHTS);


    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    mNotificationManager.notify(notificationId, mBuilder.build());  

不工作,我看到需要使用FLAG_continuous_事件,但eclipse不给我此选项即使在关闭和打开手机图标后我也可以设置图标仍然保持不变?如果希望图标保持不变,请使用startForeground(notificationId,mBuilder.build());
      String forwarder_start_str= getResources().getString(R.string.sms_forwarding_activated);
      String app_name=getResources().getString(R.string.app_name);
      Intent intent= new Intent(this, PrefActivitySmsForwarder.class);
      Notification n= new Notification(R.drawable.ic_launcher,forwarder_start_str, System.currentTimeMillis());

     /** I ADD THIS **/ n.flags=Notification.FLAG_ONGOING_EVENT;
      PendingIntent pi=PendingIntent.getActivity(getApplicationContext(), 0,intent,0);
      n.setLatestEventInfo(getApplicationContext(), app_name, forwarder_start_str, pi);
      n.defaults= Notification.DEFAULT_ALL;
      nm.notify(uniqueId, n);
      finish();
    int icon = R.drawable.icon_notification;


    String msg= "hey";

    Intent notificationIntent = new Intent(context,Activity.class);

    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

    PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
                                                                .setSmallIcon(icon)
                                                                .setContentTitle(context.getString(R.string.app_name))
                                                                .setContentIntent(intent)
                                                                .setPriority(PRIORITY_LOW) 
                                                                .setContentText(msg)
                                                                .setAutoCancel(true)
                                                                .setDefaults(Notification.DEFAULT_SOUND   | 
                                                                             Notification.DEFAULT_VIBRATE | 
                                                                             Notification.DEFAULT_LIGHTS);


    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    mNotificationManager.notify(notificationId, mBuilder.build());