gpt4 book ai didi

java - 如何暂停执行直到听众完成?

转载 作者:行者123 更新时间:2023-11-30 02:00:20 25 4
gpt4 key购买 nike

如何以 pause() 停止代码执行(阻止 proceedFurther)的方式实现 pause()resume() () 从执行) 直到 resume() 通过点击 button 被调用?

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resume();
}
});
pause();
proceedFurther();

据我所知,OnClickListener 创建了一个单独的线程,主线程必须以某种方式停止,并发性的东西我不知道。

最佳答案

您的假设是错误的 - 点击监听器中的代码是在 UI 线程中执行的。

因此,为了更好地定义任务 - 您不想确保仅在 resume() 执行后才调用 proceedFurther()。

有两种实现方式:

  • 如果您不需要后台处理 - 恢复不会触及数据库或网络,或其他潜在的内存 - 繁重且耗时的东西,您可以在回调中进行顺序方法调用:

    public void onClick(View v) {
    resume();
    proceedFurther();
    }
  • 如果您确实需要在后台线程中执行 resume(),您确实可以使用 AsyncTask。您只需在 doInBackground() 中调用 resume() 并在 onPostExecute() 中调用 proceedFurther()。

关于java - 如何暂停执行直到听众完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31584224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com