2011-09-09 6 views
1

보조 스레드에서 실행되는 개체에 메서드가 있습니다. 오류가 발생하면이 메서드는 개체의 대리자에게 이에 응답하도록 알리고 싶어합니다. 응답은 주 스레드 (즉, UI 스레드)에서 발생해야합니다.안드로이드 및 보조 스레드에서 주 스레드로 호출

보조 스레드의 주 스레드를 어떻게 호출합니까? 내 객체의 클래스는 Activity을 확장하지 않으며 나에게는 명백한 Activity 객체가 없습니다.

답변

1

Android 핸들러를 사용하십시오. 여기에 예제 물론

http://www.tutorialforandroid.com/2009/01/using-handler-in-android.html

, 당신은 어떻게 든 2 스레드에 핸들러를 통과해야합니다.

+0

제가 참조를 가지고있는 주 스레드에서 내 루트 활동에서 만든'Handler'와 함께갔습니다. 또 하나의 캐치 (catch)는 팝업 할 토스트 (Toast)를 만드는 위치입니다. "this"를 통해 컨텍스트에 액세스해야하지만 "this"는 보조 스레드에서별로 의미가 없습니다. 이 모든 것은 실제로 필요로하는 것보다 조금 더 복잡해 보입니다. 그러나 그것은 나일지도 모릅니다. 어쨌든 작동하고별로 나쁘지 않습니다. – SK9

1

두 번째 클래스에서 변수 Context를 만든 다음 해당 변수의이 클래스에 대한 활동 참조를 전달할 수 있습니다.

나중에 활동과 유사한 방식으로 컨텍스트를 사용할 수 있습니다.

1

이를 달성하기위한 전략은 AsyncTask, Handler, View.post()입니다. 그것들은 모두에 설명되어 있습니다 painless threading article.

+0

회신에 전체 설명없이 사이트에 대한 링크를 게시하지 마십시오. 링크가 끊어졌고이 대답은 쓸모 없게되었습니다. –

+0

질문에 대답하는 방법을 다른 사람에게 강의하는 대신 자신의 질문에 답을 시작하는 것은 어떻습니까? 또는 더 나은, 업데이트 된 링크로이 답변에 대한 수정 제안 - 공식 Android 개발자 기사에서 간단한 검색으로 새로운 링크를 찾을 수 있습니다. http://android-developers.blogspot.si/2009/05/painless -threading.html –

+0

죄송합니다. 내가 무례하게 발견되면 의도하지 않았습니다. 참조 링크로 대답하고 답변을 백업하는 것이 가장 좋습니다. 감사 –

관련 문제