如何仅在应用程序启动时创建通知?

时间:2017-12-03 10:46:42

标签: android notifications

我想在我第一次启动应用时才创建通知。然后通知是持久的,所以如果我点击它,它会启动应用程序,但不会消失。

但是因为我在活动的onCreate()中创建了通知,所以每次点击通知时,都会创建一个新通知。

我该怎样防止这种情况?有没有办法检查当前通知是否正在运行?

@Override
    protected void onCreate(Bundle savedInstanceState) {    
Notification.Builder mBuilder =
                new Notification.Builder(this)
                        .setSmallIcon(R.drawable.not_norm_icon)
                        .setContentTitle("test")
                        .setContentText("test");

        Intent resultIntent = new Intent(this,MainActivity.class);
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
        stackBuilder.addParentStack(MainActivity.class);
        stackBuilder.addNextIntent(resultIntent);
        PendingIntent resultPendingIntent =
                stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
        mBuilder.setContentIntent(resultPendingIntent);
        Notification n = mBuilder.build();
        n.flags |= Notification.FLAG_NO_CLEAR;


        if (mNotificationManager != null) {
            mNotificationManager.notify(mNotificationId, n);
        }}

1 个答案:

答案 0 :(得分:1)

您可以通过添加此行来清除点击通知

mBuilder.getNotification().flags |= Notification.FLAG_AUTO_CANCEL;