gpt4 book ai didi

android - 当其他任务正在运行时,AsyncTask 永远不会完成

转载 作者:行者123 更新时间:2023-11-29 14:08:57 25 4
gpt4 key购买 nike

在我的应用程序中,我立即向用户显示一个菜单屏幕,然后使用 AsyncTask 从磁盘加载一些数据。如果这是应用程序必须做的全部,加载大约需要 3 秒。当用户点击菜单选项且数据尚未加载时,会出现“请稍候,正在加载”屏幕。

我有两个问题:

  • 我最近在我的应用程序中添加了广告,发现这有时会导致我的应用程序挂起,因为 AsyncTask 永远不会完成加载。似乎正在发生的事情是广告横幅(我正在使用 AdMob,当显示 AdSense 广告时会发生这种情况,而 AdMob 偶尔会这样做)正在通过播放简单的动画来使用资源,而 AsyncTask 永远不会获得有机会完成。

  • 我想在我的菜单屏幕上播放一个简单的循环动画(例如,使 View 旋转),这使得 AsyncTask 需要大约 5 倍的时间才能完成,从而使背景加载毫无意义.

如何避免我的后台数据从未完成加载或优先级太低而需要很长时间的情况?

我似乎找不到增加 AsyncTask 优先级的方法。

最佳答案

在 AsyncTask 的 onPostExecute(List<type> result) 中,检查结果是否不等于 null(意味着对话框已关闭),然后将结果填充到主类中。

编辑

实际上你必须发送来自 doInBackground() 的结果给你的onPostExecute(). Then only it will call onPostExecute()`。

关于android - 当其他任务正在运行时,AsyncTask 永远不会完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4922983/

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