我的应用使用Android N的新的快速回复功能来快速记录固定通知中的笔记,而无需用户打开活动。
但是,我希望在用户发送快速回复消息后将通知重置为初始状态,而不必关闭通知。
这是我的代码:
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? createChannel() : "").setSmallIcon(android.R.mipmap.sym_def_app_icon).setContentTitle("My Awesome App").setContentText("Doing some work...").setContentIntent(pendingIntent);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
android.support.v4.app.RemoteInput remoteInput = new RemoteInput.Builder(BookmarkCreatorReceiver.TXT_REPLY).setLabel("Reply").build();
Intent replyIntent = new Intent(this, BookmarkCreatorReceiver.class);
PendingIntent replyPendingIntent = PendingIntent.getBroadcast(this, 0, replyIntent, 0);
NotificationCompat.Action action = new NotificationCompat.Action.Builder(android.R.drawable.ic_dialog_email, "Bookmark", replyPendingIntent).addRemoteInput(remoteInput).build();
NotificationCompat.Action actionQuick = new NotificationCompat.Action.Builder(android.R.drawable.ic_dialog_email, "Quick", replyPendingIntent).build();
builder.addAction(action);
builder.addAction(actionQuick);
}
startForeground(NOTIFICATION_ID, builder.build());
问题在于,一旦用户发送了一条消息并调用了广播接收器,通知就保持在如下加载状态:
如何删除加载消息,而不必丢弃通知?
答案 0 :(得分:3)
根据Notifications in Android N blog post:
处理完文本后,您必须通过使用相同的ID和标记(如果使用)调用notify()来更新通知。这是隐藏直接回复UI的触发器,应该用作一种向用户确认他们的回复已正确接收和处理的技术。
还请注意:
对于大多数模板,这应该涉及使用新的setRemoteInputHistory()方法,该方法将回复附加到通知的底部。
这可确保用户看到他们输入的文本得到正确处理。