1

我正在开发的应用程序下载并解析一个大型 xml 文件以填充 UI 元素,即搜索和微调器。这是通过异步任务完成的。如果用户在此期间决定退出应用程序,则信息会正确下载,但是当应用程序恢复时,UI 将不会更新。

这是因为在应用程序不活动时无法进行更改吗?检查 UI 是否未在简历中更新的最佳方法是什么?或者我应该对 Async 任务做些什么,检查 UI 线程是否可用?我很难调试这个,因为它涉及离开结束调试器的应用程序。

4

3 回答 3

2

你可以通过广播接收来实现这个场景。

请按照以下步骤操作:

解决方案1:

第1步; 在执行 Asyntask 之前注册广播接收器。

第二步:在Asyntask的onPostExecute方法中发送Broadcast。

第 3 步:然后您可以在活动中接收广播消息。并做任何你想做的事。

解决方案2:

否则,您可以为此场景使用接口回调。

希望它会帮助你。

于 2014-10-30T06:28:57.250 回答
0

不应该。应用程序在后台意味着View对象可能存在也可能不存在。实际上整个过程可能会被android停止或删除。

使用 aService真正在后台进行处理。当处理完成但 UI 不存在时,发布通知让用户知道,或者,保存结果并在下次绑定到您的服务时将其提供给 UI 并请求相同的内容(也称为缓存)。

于 2014-10-30T04:58:41.500 回答
0

后台的应用程序可能无法运行。如果内存受限,操作系统可能会破坏它。

诀窍是尝试另一种逻辑。

当应用程序从后台移动到前台 onresume() 被调用时,您可以尝试将数据保存到数据库并更新恢复调用的内容。

FYI.onPause() 和 OnResume() 分别在应用程序进入后台和前台时调用。

于 2014-10-30T05:40:46.187 回答