应用程序可能在其主线程上做了太多工作。如何修复它

Xee*_*ami 3 java android

当我从缓存中获取大量数据(以视频形式)时,应用程序会在很长的延迟后响应。我该如何解决或修复它?

日志猫。 应用程序可能在其主线程上做了太多工作

Shr*_*arg 6

在执行长时间运行或计算繁重的任务时,您应该更喜欢在后台线程(即与 UI 线程分开)上执行它。

如果 UI 线程保持忙碌状态超过 5 秒,您将在应用程序上看到 ANR,但即使少于 5 秒,用户操作(单击、滚动)也会有明显的延迟和延迟,并且日志中会出现类似消息您正在看到(编舞:跳过 XXX 帧!应用程序可能在其主线程上做了太多工作。)。

在后台线程上执行此类任务的一些方法是:

此外,从后台线程更新 UI 时要小心,因为 Android UI 工具包不是线程安全的。


编辑 :

对于从主线程卸载任务,您还可以使用: