Android:按下按钮即可打开通知

时间:2016-03-14 08:37:27

标签: android notifications

我有一个NotificationCompat.Builder,其RemoteView方法设置了自定义setContent。除其他外,此RemoteView包含几个按钮。

我通过按钮附加PendingIntent notificationView.setOnClickPendingIntent(R.id.notification_button_plusone, pIntentPlusOne);

问题在于我不希望Notification Drawer在按下按钮后消失,但保持打开状态,以便我可以多次按下R.id.notification_button_plusone - 按钮而无需下拉通知按下每个按钮的抽屉。

另外,我可能想要按下+1按钮(与Google Plus无关,只是为了增加某些东西的重量),然后在同一个通知中按一个星形按钮,最后按一个分享按钮。按下共享按钮上的按钮应关闭通知抽屉,所有其他按钮应保持打开状态。

我该怎么做?我看到应用程序“Power Toggles”能够做到这一点,这就是我想要的行为。

2 个答案:

答案 0 :(得分:1)

扩展通知(Jellybean及以上版本)中的操作支持此操作。如果您将未决意图附加到此类操作,并且未决意图不是活动,则抽屉应保持打开状态(对于广播待决意图,我认为它也适用于服务暂挂意图)。许多应用程序使用它来快速切换等。

我不确定是否可以通过非扩展通知中的RemoteViews自定义布局实现相同的功能,如果这是您当前正在使用的内容,但我会怀疑如果您的通知没有autoCancel且您的按钮没有启动活动,它应该有效吗?如果不是这样的话,您可能希望发布更多代码。

我不熟悉电源切换,但从屏幕截图来看,它看起来可能是使用远程视图而不是动作。

答案 1 :(得分:0)

如果PendingIntent是通过致电PendingIntent.getService(...)而不是PendingIntent.getActivity(...)创建的,那么通知抽屉就不会关闭。

如果需要,可以通过调用sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS))

关闭服务中的通知抽屉