使用按钮进行通知,点击后执行操作而不打开活动

时间:2015-11-23 06:37:14

标签: android

我正在尝试创建一个通知,我在其中添加按钮,基本上可以执行某些操作。我知道我可以做以下事情

NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(con)
            .setSmallIcon(image)
            .setContentTitle("title")
            .addAction(icon, title, intent)

我的问题是: 1)是否仅在API 5.0+或4.x中添加了按钮?我读了不同的答案

2)该行动似乎与开展活动有关。有没有我可以拥有它所以当你点击一个按钮它需要一个动作,而不必打开活动(通过广播接收器或其他方式)?据我所知,Intent开展活动。

非常感谢

2 个答案:

答案 0 :(得分:4)

  1. 它适用于Android 4.1及更高版本。 See official doc

  2. 如果你想在没有任何UI更新的情况下采取行动(即显示任何活动),我建议发送待处理的意图(将触发广播接收者)作为通知行动的参数

    < / LI>

    i)创建名为BroadcastReceiver的{​​{1}} ii)以MyBroadcastReceiver BroadcastReceiver's方法添加您的操作 iii)创建onReceive

    PendingIntent

    iv)将其添加到通知

    Intent mIntent = new Intent(this,MyBroadcastReceiver.class);
    PendingIntent mPendingIntent = PendingIntent.getBroadcast(this, 0, mIntent , 0);
    

答案 1 :(得分:1)

  

1)是否仅在API 5.0+或4.x中添加了按钮?

它适用于 Android 4.1及更高版本。请参阅official doc

  

2)......据我所知,Intent会开展活动。

是的,您可以使用BroadcastReceiver或Service来执行不涉及UI的逻辑。首先,您可以构建启动活动,广播接收器或服务的意图。其次,NoticiationCompat.Builder#addAction的第三个参数是 PendingIntent ,而不是 Intent 。例如,您可以使用PendingIntent.getService为服务创建PendingIntent。

http://developer.android.com/reference/android/app/PendingIntent.html#getService(android.content.Context,int,android.content.Intent,int)