Android sleep() 不阻塞 UI

标签 android sleep thread-sleep

对于我的新 Android 应用程序,我需要一个函数,使我的应用程序超时 3 秒。我尝试了这样的函数“sleep()”:

seekBar1.setProgress(50);                // Set something for my SeekBar

try{
   Thread.sleep(3000);                   // Wait for 3 Seconds
} catch (Exception e){
   System.out.println("Error: "+e);      // Catch the exception
}

button.setEnabled(true);                 // Enable my button

它似乎工作,但如果我正在运行应用程序,它会这样做:WAITING 3 秒,设置进度并启用按钮。我想先设置进度,然后等待 3 秒,然后才启用按钮。

“sleep()”是否适合我使用,或者我还能做什么以使我的应用程序以正确的顺序执行它?

最佳答案

您可以像这样使用 postDelayed() 方法:

handler=new Handler();
Runnable r=new Runnable() {
    public void run() {
        //what ever you do here will be done after 3 seconds delay.              
    }
};
handler.postDelayed(r, 3000);

关于Android sleep() 不阻塞 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29198262/

相关文章:

android - 前台服务在 Android 10 中被杀死

android - 有没有办法在 Android 上隐藏/混淆 .realm 文件?

sleep (挂起)和恢复窗口窗体在工作线程而不是主线程上启动程序

java - sleep java后图像不绘制

c++ - MFC C++ 在主线程上放置 1000 毫秒 sleep ?

haskell - 在haskell中绑定(bind)计算的运行时间

android - 按钮的 OnClickListener 上的 NullPointerException

android - ExoPlayer:控制前进和后退按钮的跳过间隔

java - Thread.sleep(long) 有多有效?

php - 重定向的 HTTP 问题