gpt4 book ai didi

android - Android 蜂窝上的持续通知具有不一致的行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:17 26 4
gpt4 key购买 nike

我有一个在后台下载文件的持续通知。我已经成功地创建了多个同时更新的进度条通知,这些通知也可以被取消。这在所有经过测试的设备上都能正常工作,除了一些最新的带有 Honeycomb 的 Android 平板电脑。

现在的效果是不断重新显示原始通知消息,从而防止用户单击时钟以调出正在进行的通知列表。因此,甚至看不到进度条。有没有人成功地在 Honeycomb 上创建进度条通知?

另一方面,我还发现我的黑色通知文本在通知列表的黑色背景下不再可读。有没有办法为 Honeycomb 设备设置白色文本?

注意:已在运行 Android 3.0.1 的 Optimus Pad L-06C 和 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);

最佳答案

要解决此问题,您需要按位设置 Notification.FLAG_ONLY_ALERT_ONCE在您正在进行的通知中。这将确保仅在首次显示通知时才通知用户。之后,他们必须打开通知托盘才能查看通知状态。

Notification notification = new Notification();
notification.flags |= Notification.FLAG_ONGOING_EVENT;
notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE;

关于android - Android 蜂窝上的持续通知具有不一致的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6247482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com