2011-04-19 56 views
0

我有这样的活动,在onclick事件中对Login类进行分类。我的登录类基本上做了一个http post并分析来自服务器的XML响应。这发生在Login类的构造函数中的一个线程中。当AsyncTask准备好时Notifiy Activity?

我的问题是这部分:

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

} 
else{ 

} 

基本上,同时登录的构造是做它的魔力,我的代码的其余部分会被执行并且login.isErrorOccurd()出现假,我else块得到执行,即使有一个错误。

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

编辑:

像精灵说,我将不得不使用的AsyncTask。尽管如此,我仍然希望在我的Activity中进行报告。我该怎么做呢? (这是一个好主意,还是我应该在我的Activity中的onPostExecute()方法中执行此操作?)

回答

2

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

+0

你的意思是我不能在我的活动中进行错误检查? – networkprofile 2011-04-19 19:58:11

+0

你可以,但是你不能在开始一个检查登录的线程之后执行它。此线程必须通知您的活动有关检查结果,然后活动应根据检查结果执行一些操作。 – Michael 2011-04-19 20:03:52

+0

我如何正确地通知我的AsyncTask类中的活动? – networkprofile 2011-04-19 21:43:54