Уведомление Деятельность, когда AsyncTask готов? - PullRequest
0 голосов
/ 19 апреля 2011

У меня есть это действие, которое классифицирует класс Login внутри события onclick. Мой класс Login в основном делает http-пост и анализирует XML-ответ от сервера. Это происходит внутри потока в конструкторе класса Login.

Моя проблема в этой части:

Login login = new TvsLogin(emailEditText.getText().toString(), passwordEditText.getText().toString());
if(login.isErrorOccurd()){

}
else{

}

По сути, пока конструктор входа в систему выполняет свою магию, остальная часть моего кода выполняется, и login.isErrorOccurd() отображается как false, и мой блок else выполняется, даже когда есть ошибка.

Есть предложения, как мне это исправить? Вход в систему может занять некоторое время, поэтому имеет смысл сделать это в потоке, но это не работает так, как я ожидал.

EDIT:

Как говорит Пикси, мне придется использовать AsyncTask. Я все еще хотел бы делать отчеты в моей Деятельности все же. Как мне это сделать? (Это хорошая идея, или я должен просто сделать это внутри метода onPostExecute() в моей Деятельности?)

1 Ответ

1 голос
/ 19 апреля 2011

Нет ничего странного в этом поведении. Вход во второй поток не проверяется при вызове метода login.isErrorOccurd(). Вы можете использовать метод Activity.runOnUiThread(), чтобы уведомить вашу деятельность о результатах проверки входа в систему, или вы можете использовать класс AsyncTask, чтобы он сделал это за вас. Но в любом случае проверка ошибок будет в другой части кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...