gpt4 book ai didi

java - Android - 从 UI 线程切换回来?

转载 作者:行者123 更新时间:2023-12-01 07:56:34 25 4
gpt4 key购买 nike

我有 MainActivity 和我单独的类,名称是 MyClass。我想在 MyClass 中运行一些代码。我在 MyClass 中有相应的方法。在 MyClass 的构造函数中,我传递 MainActivity 类的 Context 并在 Activity< 中转换该 Context/.

MyClass.java

    private Context context;
private Activity activity;

public MyClass(Context context) {
this.context = context;
this.activity = (Activity) context;
}

public void MyFunction() {
activity.runOnUiThread(new Runnable() {
public void run() {

// Code
}
});
}

这里一切都很顺利。在runOnUiThread中,我编写了一些代码。有一种情况,执行runOnUiThread()主体后,我想回到MyClass上下文。我希望仅在 runOnUiThread() 中完成此操作。有什么办法可以再次切换回当前线程吗?

谢谢

最佳答案

您可以使用 ρяσѕρєя K 或 Kushal 发布的答案之一。这是我的 2 美分,让事情变得更清楚。

runOnUiThread中的所有代码都会在UI线程上执行,并且不能分成两部分;一个在 UI 线程上运行,另一个在不同的线程/上下文中运行。现在,如果您想在 runOnUiThread 完成后执行代码块,那么您可以修改您的 runOnUiThread 函数,如下所示(如此处一些答案中的建议):

public void MyFunction() {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
// Add code to run on UI-Thread here
}
});
// Add code to run on non UI-Thread here (i.e. on the calling Thread)
}

关于java - Android - 从 UI 线程切换回来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29404868/

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