2016-03-14 2 views
1

У меня есть NotificationCompat.Builder, у которого есть пользовательский RemoteView, установленный через его метод setContent. Это RemoteView содержит, между прочим, пару кнопок.Android: Сохранять уведомления на кнопке

прилагает PendingIntent к кнопке с помощью notificationView.setOnClickPendingIntent(R.id.notification_button_plusone, pIntentPlusOne);

Проблемы заключается в том, что я не хочу, чтобы Notification векселедатель после исчезает кнопка нажата, но держать его открытым, так что я могу нажать R.id.notification_button_plusone -Button несколько раз без необходимости вытягивать ящик уведомлений для каждой кнопки.

Кроме того, я могу нажать кнопку +1 (не связанную с Google Plus, просто чтобы добавить вес к чему-либо) несколько раз, затем нажмите кнопку «звезда» и, наконец, кнопку совместного доступа в том же уведомлении. Нажатие кнопки на кнопке общего доступа должно закрывать ящик уведомлений, все остальные кнопки должны оставаться открытыми.

Как я могу это сделать? Я вижу, что приложение «Power Toggles» может это сделать, это поведение, которое я хочу.

ответ

0

Если PendingIntent создан по вызову PendingIntent.getService(...) вместо PendingIntent.getActivity(...), то ящик уведомлений не будет закрыт.

Если необходимо, тогда можно закрыть ящик уведомлений в Сервисе по телефону sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS))

1

Действия в расширенные Уведомления (Jellybean и выше) поддерживают это. Если вы приложите ожидающее намерения к такому действию, и ожидающее намерения не относится к какой-либо деятельности, ящик должен оставаться открытым (это определенно для ожидающего трансляции намерения, я думаю, также для ожидающего обслуживания обслуживания). Многие приложения используют это для быстрого переключения и т. Д.

Я не уверен, что можно добиться того же результата из пользовательского макета RemoteViews в нерасширенном уведомлении, если это то, что вы сейчас используете, но я подозреваю что если ваше уведомление не имеет autoCancel, и ваши кнопки не запускают действия, он должен работать? Возможно, вы захотите опубликовать больше своего кода, если это не так.

Я не знаком с переключателями питания, но с его скриншотов похоже, что это может быть использование remoteviews, а не действий.