gpt4 book ai didi

Android 网络线程和 View /GUI 更新

转载 作者:行者123 更新时间:2023-11-30 03:13:06 25 4
gpt4 key购买 nike

我有一个陷阱 22。如果我使用 AsyncTask 来运行我的网络 Activity ,我将无法从该线程更新我的用户界面。

MainActivity.onCreate(...){
myAsyncTask.execute();
//E/AndroidRuntime(1177): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
}

网络 Activity 将是连续的,需要在不同的线程上发生。因此,我求助于 super.runOnUiThread 来修复上述错误,因为它接受 Runnable 作为其参数。不幸的是,Javadoc 并不清楚,因为我不知道 super.runOnUiThread 是要创建一个 Thread 还是直接调用 run。显然它没有创建线程,因为我得到了这个异常:android.os.NetworkOnMainThreadException

鉴于我有一个需要连接的单屏应用程序。使这项工作最简单的方法是什么?

最佳答案

If I use a AsyncTask to run my network activity I can't update my user interface from that thread

这就是 AsyncTaskonPostExecute() 的原因。将您的 UI 更新逻辑放在那里(或者 onProgressUpdate(),如果您希望在后台工作进行时更新 UI)。

关于Android 网络线程和 View /GUI 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20589823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com