Java 无法挂起线程以访问Android中的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() {

我正在编程一个线程,当它开始执行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()
)将其发布-这对于您的任务来说已经足够了

我正在编程一个线程,当它开始执行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);