0

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

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

+0

添加您的代码,确保数据可用日志。 – 2014-10-30 04:43:06

+0

可能是您的应用进入暂停模式... !!! – 2014-10-30 04:43:58

+0

尝试savedinstance状态。 – 2014-10-30 04:44:54

回答

0

It should'nt。应用程序在后台意味着View对象可能会或可能不会在那里。其实整个过程可能会停止或刚刚删除的android。使用Service真正在后台进行处理。当处理完成但用户界面不存在时,发布通知让用户知道,或者保存结果并在下一次绑定到服务时提供给UI并请求相同的事情(也称为缓存)。

0

在后台的应用程序可能不是活的。在内存限制的情况下,O.S可能会将其销毁。

诀窍是尝试一个替代逻辑。

当应用程序从背景移动到前景onresume()被调用时,您可以尝试将数据保存到数据库并更新简历调用中的内容。

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

2

您可以通过广播接收来实现此场景。

按照步骤:

解决方案1:

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

第2步: 在asyntask的onPostExecute方法中发送广播。

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

解决方案2:

否则,你可以使用接口回拨这个方案。

希望它会帮助你。