Вы должны понимать, что doInBackground () работает в потоке, отличном от пользовательского интерфейса, поэтому вы не можете получить доступ к пользовательскому интерфейсу здесь. AsyncTask имеет два других метода:
onPreExecute()
- до запуска doInBackground()
onPostExecute()
- после запуска doInBackground()
может получить результат работы, выполненной doInBackground ()
Вам нужно передать результат doInBackground()
в onPostExecute()
, где вы можете затем установить текст TextView.
Я бы предложил вам прочитать статью Google о том, как использовать Asynctask, которую можно найти по адресу http://developer.android.com/resources/articles/painless-threading.html, и взглянуть на класс AsyncTask .
Пример кода
private class MyAsynctask extends AsyncTask<String, Void, String> {
protected String doInBackground(String... urls) {
//do something heavy or resource intensive
String data = resultOfSomeWork();
return data;
}
protected void onPostExecute(String result) {
myTextView.setText(result);
}
}