Android 启动应用程序时通知保持打开状态

Android notification stays open when launching app

我可以通过 AlarmManager 排队和启动通知,我也可以在单击通知时启动我的应用程序。不幸的是,当应用程序启动时,通知并没有自行删除。

通知设置:

Intent intent = new Intent(mainActivity, NotificationPublisher.class);
intent.setAction("handle");

PendingIntent pIntent = PendingIntent.getBroadcast(mainActivity, 0, intent, 
                                                    PendingIntent.FLAG_CANCEL_CURRENT);

Notification.Builder builder = new Notification.Builder(mainActivity)
    .setSmallIcon(R.drawable.phone)
    .setContentTitle(title)
    .setContentText(textContent)
    .setAutoCancel(true)
    .setContentIntent(pIntent);
return builder.getNotification();

通知点击广播点击此功能:

void handle(Context context, Intent intent) {
    System.out.println("handle");
    Context mainContext = Extension.mainContext;
    Activity mainActivity = Extension.mainActivity;
    Intent launchIntent = new Intent(mainContext, mainActivity.getClass());
    launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(launchIntent);
}

句柄函数将启动 activity 但不会从状态栏中删除通知。有趣的是...如果我删除对 startActivity 的调用,通知将关闭。

我尝试过的事情:

根据你的问题的这个陈述:

Interestingly... If I remove the call to startActivity, the notification will close.

我假设您的 Activity 只是转发了 Notification

我通过在点击通知后 300 毫秒启动我的应用程序来解决这个问题。