2012-02-11 4 views
0

버튼을 클릭 할 때 무거운 작업을 수행하려고하는데 버튼을 클릭했을 때 즉시 변경된 버튼의 상태를 변경하고 싶습니다. 작업이 완료되면 그것의 변화. 나는 웹 서비스와 상호 작용을 너무 사용하고 있기 때문에 멀티 스레딩을 사용해야한다고 생각합니다.Android : 버튼 또는 TextView를 클릭하여 내 애플리케이션에 ANR을 표시합니다.

더 나은 해결책을 주시기 바랍니다.

+0

당신이 직접 대답했기 때문에이 질문은 무의미합니다. 다른 스레드를 사용해야 할 것입니다. – aviraldg

+0

@avital 일부 편집 형제를하고 요점을 확인하십시오. – Akram

답변

4

예, 백그라운드에서 작업을 수행하고 필요할 때 UI 스레드에 알리기 위해 설계된 AsyncTask에 큰 작업을 더 잘 수행하는 것이 좋습니다.

Google에서이 article about threading을보고 그 예제를 사용하여 앱을 다시 작성하십시오.

1

heavyClick 코드 앞에 버튼을 변경하기위한 코드 부분을 onClickListener에 넣을 수 있습니다. 그런 다음 UI 부분을 먼저 수행합니다.

+0

"무거운"코드를 UI 스레드 외부에 배치하지 않으면 앱과 상호 작용할 때 ANR이 계속 유지됩니다. – OleGG

+1

내가 대답했다 (분명히 더 나은 접근법이다) 나는 단지 특정 질문에 답하려고했다. – AJcodez

관련 문제