显示通知时,我收到有关 Android 2.3 崩溃的报告。我拥有的堆栈跟踪是:
android.app.RemoteServiceException: Bad notification posted from package com.megadevs.hubi: Couldn't expand RemoteViews for: StatusBarNotification(package=com.megadevs.hubi id=1 tag=null notification=Notification(vibrate=null,sound=null,defaults=0x0,flags=0x62))
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1048)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
我已经读到 Android 2.3 的 AnimatedImageView 存在一些问题,但我认为我没有使用它......我为显示通知而运行的代码是:
NotificationCompat2.Builder builder = new NotificationCompat2.Builder(getApplicationContext());
notification = builder.setOngoing(true)
.setAutoCancel(false)
.setPriority(NotificationCompat2.PRIORITY_DEFAULT)
.setSmallIcon(notificationSmallIcon)
.setWhen(System.currentTimeMillis())
.setContentIntent(notificationIntent)
.setContentTitle(downloads.elements().nextElement().getFileName())
.setProgress(100, (int) downloadable.getDownload().getProgress(), false)
.build();
startForeground(DL_NOTIFICATION, notification);
更新:
我发现当我尝试更新以 startForeground() 开头的通知时出现问题,我运行的代码是:
notification.contentView.setProgressBar(android.R.id.progress, 100, (int) download.getProgress(), false);
mNotificationManager.notify(DL_NOTIFICATION, notification);
但是它在 ICS 和 JB 上可以正常工作,那么为什么在 Ginger 上会出现问题呢?