2011-05-09 4 views
0

내 계산을 모두 내 애플 리케이션을위한 AsyncTask 후 UI를 떠날 때까지 내 애플 리케이션은 내 클래스에 대한 모든 변수를 초기화에서 내 응용 프로그램이 ANR을 얻을 것을 깨달았다 onPostExicute 방법 내 AsyncTask를 만듭니다. 저는 여기에 대해서 이야기하고 코드입니다 : 당신이 코드의 더 필요하면안드로이드 ANR 문제, AsyncTask

(노트 것들을 내가 가지고 노는거야 코드 조각이다)

http://pastebin.com/BB8M9afE , 나는 그것을 게시 할 수 있습니다. 스레딩 클래스에서 ANR이 발생하지 않게하려면 어떻게합니까?

코드 메모 : ColorFloodGame (6,6)은 int 배열에 math.random() 값을 채 웁니다. GuiThreader는 ColorFloodGame (6,6)을 만들고 "Play"의 별칭으로 만들고 GUI 드라이버를 만듭니다.

+0

이 게시물에 직접 추가 할 수있는 코드는 충분하지 않습니다. '새로운 ColorFloodGame (6,6)'은 얼마나 많은 작업을합니까? '새로운 GuiThreader (게임)'에 얼마나 많은 작업이 포함되어 있습니까? 그것이 우리가 볼 필요가있는 것입니다. –

+0

Ted의 요점을 강조하기 위해 : 지금까지 게시 된 예제 코드에는 누군가가 원래 질문에 대답하는 데 도움이되는 유용한 정보는 거의 없습니다. –

답변

4

"adb shell cat /data/anr/traces.txt" 마지막 ANR의 스택 크롤링을 확인합니다. 목록의 첫 번째 스택은 앱의 기본 스레드를위한 스택이므로 ANR이 발생했을 때 수행중인 작업을 보여줍니다. 그렇게 오래 걸리는 일을 결정하는 것이 어디 있는지보십시오.

+0

My LogCat은 내 재생 인 텐트를 시작하자마자 실행 시간 제한과 유휴 시간 제한이 있음을 보여줍니다. 그때 그것은 GC가 157 개체를 해방하고 그것이 최종적인 오류라고합니다 포인터 작업을 파견하는 창 없음 0 – Cody