异步任务准备好后通知活动?

时间:2011-04-19 18:51:18

标签: java android android-activity android-asynctask

我有这个活动,在onclick事件中对一个Login类进行分类。我的Login类基本上都是一个http帖子,并解析来自服务器的XML响应。这发生在Login类的构造函数中的一个线程内。

我的问题在于这部分:

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

}
else{

}

基本上,虽然login的构造函数正在做它的魔力,但我的其余代码会被执行并且login.isErrorOccurd()显示为false并且我的else块会被执行,即使出现错误也是如此。

有任何建议我应该如何解决这个问题?登录可能需要花费时间,因此在一个线程中执行它是有意义的,但它并没有按照我预期的方式运行。

修改

像Pixie说的那样,我将不得不使用AsyncTask。我仍然想在我的活动中进行报告。我该怎么做呢? (这是一个好主意,还是我应该在我的Activity中的onPostExecute()方法中执行此操作?)

1 个答案:

答案 0 :(得分:1)

这种行为并不奇怪。调用login.isErrorOccurd()方法时,不会在辅助线程中检查登录。您可以使用Activity.runOnUiThread()方法通知您的活动有关登录检查结果的信息,或者您可以使用AsyncTask类让它为您执行此操作。但无论如何错误检查将在代码的其他部分。