gpt4 book ai didi

android - 如何在服务中启动新线程?

转载 作者:IT老高 更新时间:2023-10-28 21:53:46 36 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,我正在一项服务中做一些繁重的工作(从在线网页获取数据并将其解析以存储在数据库中)。目前,大约需要 20 多分钟,这次我的 UI 卡住了。我正在考虑在服务中使用线程,这样我的 UI 就不会卡住,但会出错。我正在使用以下代码:

Thread thread = new Thread()
{
@Override
public void run() {
try {
while(true) {
sleep(1000);
Toast.makeText(getBaseContext(), "Running Thread...", Toast.LENGTH_LONG).show();
}
} catch (InterruptedException e) {
Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show();
}
}
};

thread.start();

这个简单的代码给出了运行时错误。即使我取出 while 循环,它仍然无法正常工作。拜托,谁能告诉我我在做什么错误。显然,我直接从电子书中复制了这段代码。它应该可以工作,但事实并非如此。

最佳答案

Android 戒律:您不得在自己的线程中与 UI 对象交互

将您的 Toast Display 包装到 runOnUIThread(new Runnable() { });

关于android - 如何在服务中启动新线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4178682/

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