Текущее уведомление в сотах Android имеет несогласованное поведение

У меня есть постоянное уведомление о загрузке файлов в фоновом режиме. Мне удалось создать несколько одновременных уведомлений индикатора выполнения обновления, которые также можно отменить. Это отлично работает на всех протестированных устройствах, за исключением некоторых новейших планшетов Android с Honeycomb.

Эффект теперь заключается в том, что исходное сообщение уведомления постоянно отображается повторно, не позволяя пользователю щелкнуть по часам, чтобы открыть список текущих уведомлений. Таким образом, индикаторы выполнения даже не видны. Кому-нибудь удалось по существу создать уведомления индикатора выполнения на Honeycomb?

Кроме того, я обнаружил, что мой черный текст уведомления больше не читается на черном фоне списка уведомлений. Есть ли способ установить белый текст для устройств Honeycomb?

Примечание: Это было протестировано на Optimus Pad L-06C под управлением Android 3.0.1 и Motorola Xoom

Ниже показано создание уведомления

// Create new notification for downloading
mNotification = new Notification(R.drawable.owl_icon, getNotificationText(R.string.notification_content_downloading), 0);
mNotification.flags |= (Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT);

// Create custom progress bar view
RemoteViews contentView = new RemoteViews(CourseSyncService.this.getPackageName(), R.layout.notification_downloading);
contentView.setTextViewText(R.id.notificationTitle, mCourseTitle);
contentView.setProgressBar(R.id.notificationProgressBar, 100, 0, false);
contentView.setTextViewText(R.id.notificationPercentage, "0%");
mNotification.contentView = contentView;

// Create pending intent for the notification
Intent notificationIntent = new Intent(CourseSyncService.this, CancelDownloadActivity.class);
notificationIntent.putExtra(CourseSyncService.KEY_USER_ID, mUserId);
notificationIntent.putExtra(CourseSyncService.KEY_COURSE_ID, mCourseId);
notificationIntent.putExtra(CourseSyncService.KEY_COURSE_TITLE, mCourseTitle);
PendingIntent contentIntent = PendingIntent.getActivity(CourseSyncService.this, mCourseId, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);
mNotification.contentIntent = contentIntent;

// Launch notification
mNotificationManager.notify(mCourseId, mNotification);

И вот как я обновляю уведомление:

// Update the progress bar of the notification view 
mNotification.contentView.setProgressBar(R.id.notificationProgressBar, mItemCount, mProgressCount, false);
mNotification.contentView.setTextViewText(R.id.notificationPercentage, String.valueOf(mProgress) + "%");
mNotificationManager.notify(mCourseId, mNotification);
9
задан Chase 8 June 2011 в 09:54
поделиться