我正在使用异步任务并行下载多个文件(超过10 个)(代码与 Main.java 位于不同的 .java 文件中)。
我产生了许多异步任务,每个任务将
在异步任务 onProgress 方法中每 2 秒调用一次 onProgress,它将更新通知栏中的文本和进度条
Main.notification.contentView.setProgressBar(R.id.status_progress, 100, percentCompleted, false); // percentCompleted is calculated
Main.notification.contentView.setTextViewText(R.id.status_text, title);
Main.nm.notify(value, Main.notification);
请注意,我将 Main.java 中的“通知”和“nm”声明并初始化为公共静态。(所以我可以在另一个 .java 文件中的异步任务中轻松调用它们)
public static Notification notification;
public static NotificationManager nm;
当我并行下载大约5 个文件时,它仍然可以正常工作(没有明显的滞后)。
但是当我并行下载10多个文件时,通知栏变得非常滞后。
当我同时下载20 个文件并出现错误“不幸的是系统 ui 已停止”时,它甚至崩溃了,并且我的通知栏完全消失了(必须重新启动手机)。
像这样更新多个通知但没有延迟的更好方法是什么?
请注意,延迟不是由异步任务中的下载引起的。我试过下载,通知栏中没有显示通知,而且完全没有延迟。(Galaxy S3 四核 Exynos)