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