gpt4 book ai didi

java - Android线程问题(线程在后台运行)

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

大家好
我今天遇到的问题是关于 Threads ,在 Android Activity 中,我想显示一个带有消息、图标和标题以及三个按钮(正面、负面和中性)的对话框,我已经做到了没有错误(加上监听器和所有这些),我正确地执行并且再次没有错误,问题在于:

    alert.setPositiveButton("Yes", new android.content.DialogInterface.OnClickListener(){
public void onClick(DialogInterface i, int j)
{

pb.setVisibility(0); //pb is a progress bar
new Thread (new Runnable ()
{
public void run ()
{
try {
tv.setText("Saved!");
Thread.sleep(5000);
tv.setText(null); //tv is a text view
Thread.sleep(5000);
finish();

} catch (InterruptedException e) {
alerttmp.setIcon(R.drawable.ic_launcher);
alerttmp.setTitle("Error");
alerttmp.setMessage("Thread could not be executed Thread id: 100390");
alerttmp.show();
}

}
}).run();
}
});

看,正按钮突出显示并保持突出显示,直到 Activity 关闭,而我希望对话框消失,pb 显示,电视显示文本“已保存!!”在里面,然后里面没有文字,毕竟这会杀死 Activity 。

SOS 伙计们!谢谢!

ps:英语不是我的母语,所以请不要使用莎士比亚的话! :) 请使语言尽可能简单!谢谢你!

最佳答案

问题是您不在 UI 线程中执行 UI 操作。

您需要将可运行对象发布到 UI 处理程序,而不仅仅是为此生成一个新线程。

您可以使用 new Handler().postDelayed(Runnable runnable, long millis) 来完成它。这当然必须从 UI 线程运行 - 而不是从您产生的任何其他线程。

关于java - Android线程问题(线程在后台运行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638404/

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