java - 在 asynctask 线程 Android 中运行 View 监听器回调代码

标签 java android multithreading android-asynctask callback

我在异步任务中运行以下代码。但由于某种原因,onGlobalLayout 代码在我的主 Activity 线程中运行。我怎样才能阻止这个并确保代码在我的 asynctask 线程中运行?

    textViewAll.getViewTreeObserver().addOnGlobalLayoutListener(
            new OnGlobalLayoutListener() {
                @SuppressLint("NewApi")
                @Override
                public void onGlobalLayout() {

                                //My code occurs here

                }
            });

最佳答案

How can I stop this and make sure the code is run in my asynctask thread?

通过扩展AsyncTask创建一个内部类,并在doInBackground方法中移动正在执行长操作的内容的所有代码,如果想要更新UI根据长操作结果的元素然后从doInBackground返回结果并在onPostExecute方法中获取它。

只需在 onGlobalLayout 方法中调用 AsyncTask.execute() 即可。

关于java - 在 asynctask 线程 Android 中运行 View 监听器回调代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33742022/

相关文章:

java - 将 Java 类构造函数添加到 ArrayList(扩展)

android - Espresso 中多个 View 的断言

python - 是否有多线程 map() 函数?

android - Android 上 native 线程的可能状态?

c# - SynchronizationContext.Send 和 SynchronizationContext.Post 有什么区别?

java - 在另一台计算机上运行 .jar 文件时通信链路失败,但在我的计算机上运行正常

java - 如何在服务器上安装平台应用程序以避免每个用户本地安装

java - 如何通过预先添加 IP 和 UDP 或 TCP header 来转发从套接字读取的数据?

java - 为什么这个 JavaFX 应用程序看起来与 SceneBuilder 中的应用程序有很大不同?

android - 如何通过旋转正确保留 DialogFragment?