我正在使用 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或其他接口以及在后台线程完成时要执行的方法)。
慕森卡
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一段时间。
添加回答
举报
0/150
提交
取消