Java 无法挂起线程以访问Android中的UI
我正在编程一个线程,当它开始执行10秒后,它将使UI的一个组件可见: 代码如下:Java 无法挂起线程以访问Android中的UI,java,android,multithreading,Java,Android,Multithreading,我正在编程一个线程,当它开始执行10秒后,它将使UI的一个组件可见: 代码如下: Thread buttonThread=null; // this is a global variable [...] buttonThread = new Thread() { @Override public void run() {
Thread buttonThread=null; // this is a global variable
[...]
buttonThread = new Thread()
{
@Override
public void run()
{
try
{
super.run();
sleep(10000); //Delay of 10 seconds
} catch (Exception e)
{
}
finally
{
try
{
buttonThread.suspend();
cont.setVisibility(View.VISIBLE);
buttonThread.destroy();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
};
buttonThread.start();
但是当我尝试执行buttonThread.suspend()时,我得到了一个java.lang.UnsupportedOperation异常
我知道使用suspend是不安全的,这也是它被弃用的原因,但我想首先检查挂起线程是否有效,并通过调用.suspend()来执行它,这看起来是最简单的方法
你能,请,建议我一些可能的解决方案,使代码中显示的线程挂起吗
我正在编程一个线程,当它开始执行10秒后,它将使UI的一个组件可见:
线程在这里是过度的,它的使用是不合理的。使用普通的Runnable
并以所需的延迟(postDelayed()
)将其发布-这对于您的任务来说已经足够了
我正在编程一个线程,当它开始执行10秒后,它将使UI的一个组件可见:
线程在这里是过度的,它的使用是不合理的。使用普通的
Runnable
并以所需的延迟(postDelayed()
)进行发布-这对于您的任务来说已经足够了。在android中有很多类似的方法。最常见的是,使用这样的处理程序类
添加此导入行
import android.os.Handler;
并使用此代码使用处理程序类创建新的可运行
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// do your stuff here
}
}, DELAY_IN_MILLI_SECONDS);
在安卓系统中有很多类似的方法。最常见的是,使用这样的处理程序类 添加此导入行
import android.os.Handler;
并使用此代码使用处理程序类创建新的可运行
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// do your stuff here
}
}, DELAY_IN_MILLI_SECONDS);