2011-04-19 5 views
0

나는 onclick 이벤트 내에서 Login 클래스를 class로하는이 액티비티를 가진다. 내 Login 클래스는 기본적으로 http 게시를 수행하고 서버의 XML 응답을 구문 분석합니다. 이것은 Login 클래스의 생성자에있는 스레드 내에서 발생합니다. 로그인의 생성자 내 나머지 코드가 실행됩니다, 마술 및 login.isErrorOccurd() 내 다른 블록이 실행됩니다 거짓 나타나고하고있는 동안, 경우에도,Notifiy AsyncTask가 준비되면 Activity?

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

} 
else{ 

} 

기본적으로 :

내 문제는이 부분에 오류가 있습니다.

어떻게해야합니까? 로그인은 스레드에서 수행하는 것이 바람직하므로 시간이 오래 걸릴 수 있지만 예상대로 작동하지 않습니다.

편집 :처럼 픽시는 말한다

가, 내가 AsyncTask를를 사용해야합니다. 그래도 내 활동 내에서보고를하고 싶습니다. 어떻게해야합니까? (이것은 좋은 생각입니까, 아니면 그냥 내 활동에서 onPostExecute() 메서드로 수행해야합니까?)

답변

2

이 동작에는 이상한 것이 없습니다. login.isErrorOccurd() 메서드가 호출되면 보조 스레드에서 로그인이 확인되지 않습니다. Activity.runOnUiThread() 메서드를 사용하여 로그인 확인 결과에 대한 활동을 알리거나 AsyncTask 클래스를 사용하여이 작업을 수행 할 수 있습니다. 하지만 어쨌든 오류 검사는 코드의 다른 부분에있을 것입니다.

+0

내 활동에서 오류를 검사 할 수 없다는 뜻입니까? – networkprofile

+0

로그인을 확인하는 스레드를 시작한 직후에는 그럴 수 없습니다. 이 스레드는 점검 결과에 대해 활동을 통지해야하며 결과는 점검 결과에 따라 조치를 수행해야합니다. – Michael

+0

내 AsyncTask 클래스에서 정확히 어떻게 활동에 통지합니까? – networkprofile