如何在Android中关闭通知下拉列表>;=3.0从带有附加按钮的自定义富通知?
我成功地为Android>=3.0创建了一个自定义富通知,其中显示了一些文本和一个附加按钮。如果单击通知下拉列表中按钮以外的任何位置的通知,则通知将被取消,下拉列表将关闭,并按预期启动指定的意图。 如果单击通知中的专用按钮,则会成功启动不同的意图,但下拉列表保持打开状态(通知仍然存在,但我稍后会取消它,这不是问题)。意图启动显示在“通知”下拉列表后面的活动 我想要实现的是保持所有当前行为如所述,同时关闭按钮启动意图的通知下拉列表-这可能吗?或者,如果来自按钮意图的活动获得窗口焦点就足够了 以下是自定义通知的代码(如果有帮助):如何在Android中关闭通知下拉列表>;=3.0从带有附加按钮的自定义富通知?,android,notifications,android-3.0-honeycomb,android-4.0-ice-cream-sandwich,Android,Notifications,Android 3.0 Honeycomb,Android 4.0 Ice Cream Sandwich,我成功地为Android>=3.0创建了一个自定义富通知,其中显示了一些文本和一个附加按钮。如果单击通知下拉列表中按钮以外的任何位置的通知,则通知将被取消,下拉列表将关闭,并按预期启动指定的意图。 如果单击通知中的专用按钮,则会成功启动不同的意图,但下拉列表保持打开状态(通知仍然存在,但我稍后会取消它,这不是问题)。意图启动显示在“通知”下拉列表后面的活动 我想要实现的是保持所有当前行为如所述,同时关闭按钮启动意图的通知下拉列表-这可能吗?或者,如果来自按钮意图的活动获得窗口焦点就足够了 以下是
Notification.Builder builder = new Notification.Builder(main)
.setSmallIcon(R.drawable.notification)
.setAutoCancel(true)
.setTicker(text)
.setContentIntent(...);
RemoteViews layout = new RemoteViews(
main.getPackageName(), R.layout.notification);
layout.setTextViewText(R.id.title, title);
layout.setTextViewText(R.id.text, text);
Intent i = new Intent(
"snooze", null, main, Snooze.class
);
i.putExtra(KEY_WIDGET_ID, widgetId);
layout.setOnClickPendingIntent(R.id.notification_zzz, PendingIntent.getActivity( main, 0, i, PendingIntent.FLAG_UPDATE_CURRENT ));
builder.setContent(layout);
...
NotificationManager nm =
(NotificationManager)main.getSystemService(Context.NOTIFICATION_SERVICE);
nm.notify(0, builder.getNotification());
在Android开发者办公时间里问了这个问题: (问题由49:10开始) 答案是,这是不可能的,我甚至不应该这样做,我对此表示怀疑。 这就是我创建功能请求的原因: 编辑08-10-12: 从Android 4.1开始,这是可能的,因为通知现在可以包括其他操作。有关详细信息,请参见下页:
对于Android 3.0到4.0,我没有找到解决方案。但正如上面提到的安卓4.1及以上版本,有一个内置的额外操作机制,也会关闭下拉列表,这就是我正在使用的。您可以在此处找到更多详细信息: