[英]Cannot suspend thread to access UI in Android
我正在编程一个线程,自开始执行起经过10秒钟,它将使UI的一个组件可见:
代码如下:
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()
)发布-这对于您的任务来说绰绰有余。
有很多方法可以在android中执行类似的操作。 最常见的是使用这样的Handler类。
添加此导入行。
import android.os.Handler;
并使用此代码使用处理程序类创建新的可运行对象。
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// do your stuff here
}
}, DELAY_IN_MILLI_SECONDS);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.