我的一个应用程序在三星S7上抛出了以下异常:
java.lang.RuntimeException:
at android.app.NotificationManager.notifyAsUser
(NotificationManager.java:342)
at android.app.NotificationManager.notify (NotificationManager.java:292)
at android.app.NotificationManager.notify (NotificationManager.java:276)
at
org.mypapp.test.service.NotificationReceiverRemoteViews.updateNotification
(NotificationReceiverRemoteViews.java:202)
at org.mypapp.test.service.NotificationReceiverRemoteViews.onReceive
(NotificationReceiverRemoteViews.java:63)
at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts
(LocalBroadcastManager.java:308)
at android.support.v4.content.LocalBroadcastManager.access$000
(LocalBroadcastManager.java:46)
at android.support.v4.content.LocalBroadcastManager$1.handleMessage
(LocalBroadcastManager.java:118)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:154)
at android.app.ActivityThread.main (ActivityThread.java:6642)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1358)
Caused by: android.os.TransactionTooLargeException:
at android.os.BinderProxy.transactNative (Native Method)
at android.os.BinderProxy.transact (Binder.java:628)
at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag
(INotificationManager.java:899)
at android.app.NotificationManager.notifyAsUser
(NotificationManager.java:336)下面是202行的代码:
notificationManager.notify(NOTIFICATION_ID, mBuilder.build());我也使用三星的S7,我从来没有收到过这个错误。我也不能用ansdroid studio模拟器重现这个错误。所以我不知道如何修复我不能重现的错误。有什么想法吗?
发布于 2018-11-09 17:27:55
可能的原因是您在NotificationManager#notify之前更新了RemoteViews实例,而不是重新创建一个新实例,从而导致内存泄漏。我用another answer描述了这个案例
https://stackoverflow.com/questions/47813297
复制相似问题