【发布时间】:2012-08-21 14:05:10
【问题描述】:
我正在从网站下载 html 源代码并将其显示在 TextView 上。它正在另一个线程中下载,我想在它完成时显示它。所以。我必须暂停主线程,直到它完成。现在我这样做:
MyAsyncTask task = new MyAsyncTask(this);
task.execute();
Thread.sleep(6000);
((TextView) findViewById(R.id.textView1)).setText(task.result);
但正如您所见,这不是最好的方法。我需要类似“sleepUntil(boolean is MyTaskCompleated)”的东西。 Java中是否有类似的东西。或者有什么更好的方法吗?
【问题讨论】:
-
如果要顺序执行,就在主线程中执行任务……反正就是要阻塞主线程就不要引入多线程……
-
你永远无法确定它需要 6 秒才能完成。为什么不让异步任务成为一个内部类,然后在执行后设置文本?
-
我强烈反对@user1329572。你不应该在主线程中进行网络操作!在 AsynTask 中使用进度指示器绝对是要走的路。 developer.android.com/reference/android/os/…developer.android.com/reference/android/os/AsyncTask.html
标签: java android multithreading sleep