Я использую следующий код:AsyncTask получить() метод не работает должным образом
//(...)
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», но назовите «translateTask». В любом случае вы не должны называть основной поток пользовательского интерфейса. –