我可以通过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的调用,通知将关闭。
我尝试过的事情:
答案 0 :(得分:0)
根据您提问中的陈述:
有趣的是......如果我删除了对startActivity的调用,那么 通知将关闭。
我假设您的Activity
只是重新发布Notification
。
答案 1 :(得分:0)
我通过点击通知后启动我的App 300ms来解决这个问题。