我有一个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”能够做到这一点,这就是我想要的行为。
答案 0 :(得分:1)
扩展通知(Jellybean及以上版本)中的操作支持此操作。如果您将未决意图附加到此类操作,并且未决意图不是活动,则抽屉应保持打开状态(对于广播待决意图,我认为它也适用于服务暂挂意图)。许多应用程序使用它来快速切换等。
我不确定是否可以通过非扩展通知中的RemoteViews自定义布局实现相同的功能,如果这是您当前正在使用的内容,但我会怀疑如果您的通知没有autoCancel且您的按钮没有启动活动,它应该有效吗?如果不是这样的话,您可能希望发布更多代码。
我不熟悉电源切换,但从屏幕截图来看,它看起来可能是使用远程视图而不是动作。
答案 1 :(得分:0)
如果PendingIntent
是通过致电PendingIntent.getService(...)
而不是PendingIntent.getActivity(...)
创建的,那么通知抽屉就不会关闭。
如果需要,可以通过调用sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS))