gpt4 book ai didi

android - 在后台线程中启动可运行的

转载 作者:可可西里 更新时间:2023-11-01 19:09:59 24 4
gpt4 key购买 nike

据我所知,我已经实现了一个在新线程上创建的可运行对象。但是,该线程似乎并未在后台运行,并且在 runnable 内部执行的操作正在以繁重的操作使 UI 停滞。

见下文:

custListLoadThread = new Thread(loadRunnable);
custListLoadThread.run();

private Runnable loadRunnable = new Runnable()
{
@Override
public void run()
{
android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_BACKGROUND);

Gen.popup("TEST"); // Creates a toast pop-up.
// This is to know if this runnable is running on UI thread or not!

try
{
customers = Db.BasicArrays.getCustomers(CustomApp.Session.businessCode, empId);

runOnUiThread(new Runnable() {
@Override
public void run() {
populate();
setCustListVisible(true);
loading = false;
}
});
}
catch (final Exception ex)
{
runOnUiThread(new Runnable() {
@Override
public void run() {
Gen.popup(ex.getMessage());
}
});
}
}
};

然而这段代码并不在后台运行,它似乎仍然在 UI 线程上运行。我已经放置了行 Gen.popup("TEST"); 来确保这一点(在非 UI 线程中调用 toast 弹出应该会导致错误) .

关于为什么这个 runnable 不在后台运行有什么想法吗?

最佳答案

custListLoadThread = new Thread(loadRunnable);
custListLoadThread.start();

需要启动线程,而不是调用当前线程中的run()方法。

关于android - 在后台线程中启动可运行的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24823807/

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