我正在处理的应用程序下载并解析一个大的xml文件来填充UI元素,即搜索和微调器。这是通过异步任务完成的。如果用户在此期间决定退出应用程序,则会正确下载信息,但是当应用程序恢复时,UI将不会更新。
这是因为在应用程序不活动时无法进行更改吗?检查UI是否未在简历上更新的最佳方法是什么?或者我应该使用Async任务做一些事情,检查UI线程是否可用?我很难调试这个,因为它涉及离开结束调试器的应用程序。
答案 0 :(得分:2)
您可以通过广播接收来实现此方案。
按照步骤:
第1步; 在执行Asyntask之前注册广播接收器。
第2步: 在Asyntask的onPostExecute方法中发送Broadcast。
第3步: 然后,您就可以在活动中收到广播消息。 并做任何你想做的事。
否则,您可以在此场景中使用“接口回叫”。
希望它会对你有所帮助。
答案 1 :(得分:0)
不应该。应用程序处于后台意味着View
个对象可能存在也可能不存在。实际上整个过程可能会停止或只是被android删除。
使用Service
真正在后台进行处理。当处理完成但UI不存在时,发布通知让用户知道,或者,保存结果并在下次绑定到您的服务时提供给UI并请求相同的事情(a.k.a缓存)。
答案 2 :(得分:0)
后台应用程序可能不是实时的。在内存限制的情况下,O.S可能会破坏它。
诀窍是尝试另一种逻辑。
当应用程序从后台移动到前台时,调用onresume(),您可以尝试将数据保存到db并更新恢复调用中的内容。
当应用程序分别进入后台和前景时,将调用FYI.onPause()和OnResume()。