启动应用时,Android通知会保持打开状态

时间:2015-02-07 16:28:56

标签: android android-intent alarmmanager android-notifications android-pendingintent

我可以通过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);
}

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

我尝试过的事情:

  • 手动设置自动取消标记
  • 使用builder.build()代替
  • NotificationManger取消(id)和/或取消所有
  • 使用NotificationCompat.Builder
  • 使用setContentIntent的常规启动意图而不是手动调用startActivity

2 个答案:

答案 0 :(得分:0)

根据您提问中的陈述:

  

有趣的是......如果我删除了对startActivity的调用,那么   通知将关闭。

我假设您的Activity只是重新发布Notification

答案 1 :(得分:0)

我通过点击通知后启动我的App 300ms来解决这个问题。