我希望在应用程序内显示通知,当通知被点击而不启动活动时,通知会消失。
我使用一个空意图,它可以正常工作:
根据这个SO回答,崩溃似乎是因为
可以通过ID关闭通知,但当没有活动可启动并调用dismiss方法时,无法关闭它。
如何在应用程序内部轻敲时关闭通知而不使用空意图?
我使用一个空意图,它可以正常工作:
Intent intent = new Intent();
PendingIntent contentIntent = PendingIntent.getActivity(context, (int)System.currentTimeMillis(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, "")
.setSmallIcon(R.drawable.icon)
.setContentTitle(title)
.setContentText(text)
.setAutoCancel(true)
.setTicker(text);
.setContentIntent(contentIntent);
然而,有一些崩溃问题:
java.lang.RuntimeException: bad array lengths
at android.os.Parcel.readIntArray(Parcel.java:789)
at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:339)
at android.app.NotificationManager.notify(NotificationManager.java:139)
at android.app.NotificationManager.notify(NotificationManager.java:112)
...
根据这个SO回答,崩溃似乎是因为
intent
未启动活动而发生的。可以通过ID关闭通知,但当没有活动可启动并调用dismiss方法时,无法关闭它。
如何在应用程序内部轻敲时关闭通知而不使用空意图?
更新:
根据这个SO问题,似乎是Android的一个问题。 我得到的报告中出现了崩溃,也发生在Android 4.3上。更新2:
根据这个SO回答,似乎是由于使用setLargeIcon
设置的位图过大造成的。 因此,我现在正在使用Glide缩小位图大小。
NotificationManager
中定义的常量:notificationManager.notify(NOTIFICATION_ID, yourNotificationObject);
- oemel09