我使用下面的代碼:的AsyncTask get()方法不能正常工作
//(...)
translationTextView.setText("Searching for translation...");
translationTextView.setVisibility(View.VISIBLE);
myAsyncTask = (MyAsyncTask) new MyAsyncTask().execute(someString);
try {
//As I understand it should wait here until AsyncTask is completed. But why for the time of execution translateTextView value is ""?
translationTextView.setText(translateTask.get() + "<BR>");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
的問題是,translationTextView
值是「」,直到myAsyncTask
完成。所以它看起來像
translationTextView.setText("Searching for translation...");
不被調用。我做錯了什麼?
我認爲這只是你的問題中的一個錯字,但你正在初始化「myAsyncTask」,但是調用get「translateTask」。無論哪種方式,你不應該調用主UI線程。 –