为了账号安全,请及时绑定邮箱和手机立即绑定

主线程在wait(5秒)内不等待其他线程;

主线程在wait(5秒)内不等待其他线程;

蓝山帝景 2021-08-25 10:18:37
我正在使用 java 在 android studio 中的一个 android 应用程序中工作。我正在创建一个带有一些参数的可运行对象。调用线程函数正在创建一个新线程,在创建这个新线程后,我希望主线程等待 4 秒(不会使 UI 崩溃)。它看起来无处不在,我似乎无法得到这个问题的答案    Runnable runnable;    runnable = new timedVisibility(calibratePointList,0,1,ok);    callThreadFunction(runnable);    try {        Thread.currentThread().wait(4000);    }    catch (Exception e)    {    }这是 callThreadFunction:    Thread t1 = new Thread(runnable);    t1.start();    try {        t1.join();    }    catch (Exception e)    {        System.out.println("Error caught");    }
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

我不确定四秒钟后你想发生什么,但在 Android 中你可以使用Handler:


Handler handler = new Handler();

Runnable followUpAction = new Runnable() {

    @Override public void run() { /* something to do after 4 seconds */ }

};

handler.postDelayed(runnable, 4000);

您不想让 UI 线程等待后台线程完成。如果您想在后台线程完成后立即采取某些操作,您应该使用回调方案(传递一个Runnable或其他接口以及在后台线程完成时要执行的方法)。


查看完整回答
反对 回复 2021-08-25
?
慕森卡

TA贡献1806条经验 获得超8个赞

如果您sleep()因为 UI 行为不想使用,请尝试使用Handler:


new Handler().postDelayed(new Runnable() {

    @Override

    public void run() {

        //Write your code here

    }

}, 4000); //Timer is in ms here.

你在中间写的任何东西,它都会等待 4 秒或 4000 毫秒。无论如何,不建议等待电流Thread一段时间。


查看完整回答
反对 回复 2021-08-25
  • 2 回答
  • 0 关注
  • 225 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信