PendingIntent.getBroadcast()始终使用FLAG_UPDATE_CURRENT返回null

时间:2017-12-29 22:19:33

标签: java android kotlin

我尝试使用PendingIntent创建PendindIntent.getBroadcast(),但它始终返回null,尽管文档清晰说明:

  

@return返回与给定匹配的现有或新PendingIntent   参数。仅在提供了{@link #FLAG_NO_CREATE}时才可以返回null。

我没有使用FLAG_NO_CREATE所以它永远不会返回null。

private fun createAlertPendingIntent(
  context: Context,
  notification: Notification,
  intentId: Int) : PendingIntent {
    val notificationIntent = Intent(context, NotificationPublisher::class.java)
    notificationIntent.putExtra(KEY_NOTIFICATION, notification)

    val pi = PendingIntent.getBroadcast(
        context,
        intentId,
        notificationIntent,
        PendingIntent.FLAG_UPDATE_CURRENT)

    return pi  // IS NULL
}  

1 个答案:

答案 0 :(得分:1)

显然PendingIntent.getBroadcast()可以在没有任何警告或错误的情况下返回null,如果某些内容没有任何意图,您可以将其传递给它。

在我的情况下,notificationIntent中有Notification,其中.setLargeIcon(drawable)中使用的drawable的大小不正确或对所有屏幕密度都是可用的。将它添加到mdpi,hdpi,xhdpi等文件夹解决了它。