在api 23中弃用了Android通知.addAction

Mar*_*vel 13 android

什么是一个动作添加到通知的正确方法API 23,因为addAction(int icon, CharSequence title, PendingIntent intent)已经过时?找不到任何例子,谢谢.

我的旧动作: .addAction(R.drawable.ic_prev, "Previous", prevPendingIntent)

Str*_*der 17

而不是这一个:

addAction(int图标,CharSequence标题,PendingIntent意图)

此方法在API级别23中已弃用.

使用:

addAction(Notification.Action动作)

这一切都在开发人员的文档中!

所以使用这个:

首先使用NotificationCompat.Action.Builder构建您的操作

NotificationCompat.Action action = new NotificationCompat.Action.Builder(R.drawable.ic_prev, "Previous", prevPendingIntent).build();
Run Code Online (Sandbox Code Playgroud)

注意:使用NotificationCompat.Action

然后将其添加到您的通知中:

yournotification.addAction(action);
Run Code Online (Sandbox Code Playgroud)

  • 我知道,我已经读过它,但我不明白如何正确构建“Notification.Action 操作” (2认同)
  • 这是不正确的、不兼容的类型,您需要将 `new notification.Action.Builder()` 更改为 `new Action()`,结果: `new notification.Action(.....)` 仍然被弃用,或者反之反之亦然,但仍已弃用。 (2认同)

小智 11

如果api级别> = 23(棉花糖),则使用Icon第一个参数的类为Drawable

https://developer.android.com/reference/android/app/Notification.Action.Builder.html

https://developer.android.com/sdk/api_diff/23/changes/android.app.Notification.Action.Builder.html

例)

Notification.Action action = new Notification.Action.Builder(
    Icon.createWithResource(this, R.drawable.ic_prev),
    "action string",
    pendingIntent).build();
Run Code Online (Sandbox Code Playgroud)