如何使用附加按钮从自定义丰富通知中关闭Android> = 3.0中的通知下拉菜单?

时间:2012-01-14 18:46:25

标签: android notifications android-3.0-honeycomb android-4.0-ice-cream-sandwich

我成功为Android> = 3.0创建了自定义丰富通知,其中显示了一些文字和一个附加按钮。如果您在通知下拉列表中的任何位置单击通知,则会关闭通知,关闭下拉列表并按预期启动指定的Intent。 如果单击通知中的专用按钮,则会成功启动另一个Intent,但下拉保持打开状态(通知仍然存在,但我稍后取消,这不是问题)。 Intent启动一个活动,该活动显示在通知下拉列表后面。

我想要实现的是保持所描述的所有当前行为,但也关闭按钮启动的Intent通知下拉 - 这可能吗?或者,如果按钮Intent中的Activity获得窗口​​焦点就足够了。

此处是自定义通知的代码,如果有帮助:

            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());

1 个答案:

答案 0 :(得分:2)

在Android开发人员办公时间问到这个问题: http://www.youtube.com/watch?v=XvLBvdml_Fs(问题从49:10开始)

答案是,这是不可能的,我甚至不应该这样做,我提出质疑。 这就是我创建功能请求的原因: http://code.google.com/p/android/issues/detail?id=24762

编辑08-10-12: 从Android 4.1开始,这是可能的,因为通知现在可以包含其他操作。有关更多信息,请参见以下页面: https://developer.android.com/about/versions/android-4.1.html#UI