如何解决重新创建活动时如何从 AsyncTask 更新 TextView
我在 MainActivity 中有 myProgressTextView。
在 MainActivity 中,我使用 asyncTask 启动了一个很长的进程:MyTask.execute(getApplicationContext(),myProgressTextView)
使用 publishProgress 和 onPostExecute 我能够更新 myTextView 并且一切都像一个魅力。
我在其他活动之间导航并返回到 MainActivity 时遇到问题。 再次通过 MainActivity myTextView 引用的 onCreate 被更改并且 我无法再从仍在运行的 MyTask 更新我的 UI ( myTextView )。 在这种情况下,正确的解决方案是什么?
解决方法
在 Android 中,AsyncTask 现已弃用。 Google 鼓励使用新的 android 架构组件。如果您想在屏幕旋转时保留来自任务的信息,您应该考虑使用 ViewModel 和 Kotlin 协程。 ViewModel 和 Kotlin coroutines 的更多信息。
,当活动离开屏幕即 onStop() 时,您应该取消所有任务。 异步任务已弃用,您可以使用 ViewModel 和 LiveData 方法来处理这种情况,因为实时数据具有生命周期感知能力。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。