2013-03-10 4 views
0

Sencha Touch 및 phonegap으로 개발 된 앱이 있습니다. 한 시점에서 서버에서 데이터를 다운로드하고 성공적인 응답을 받으면 다음 화면을 표시합니다. iOS 앱으로 묶어서 다음 화면으로 전환했지만 아무 것도 표시하지 않고 메모리가 부족하다는 사실을 발견했습니다. 그래서 나는 다음 스크린의 레이아웃을 단순화했다. (DOM 구조는 꽤 복잡했다.) 이제는 iOS 시뮬레이터와 아이폰에서 작동한다.Android 앱이 touch에 응답하지 않습니다

그러나 Android에서는 console.log 문 출력을 통해 성공적으로 데이터를 검색하고 이벤트를 발생시켜 다음 화면을 표시 할 수 있습니다. 그런 다음 console.log 문에 해당 화면의 'painted'이벤트가 발생했음을 표시하더라도 해당 화면을 표시하기 전에 여러 연령대에 걸쳐 앉아 있습니다.

결국 화면이 나타나지만 화면의 모든 컨트롤이 터치에 반응하지 않습니다. 그 화면의 구조를 더 단순화 할 필요가 있을까요? 페이지 구조를 단순화하기 전에 iOS 버전의 메모리가 부족하다는 경고를 받았기 때문에 Android 버전에 비슷한 문제가있을 수 있다고 생각되지만 메모리 사용을 모니터링하는 방법을 알지 못합니다.

UpdateFrameCache: pending style recalc, ignoring 

내가 (전부는 아니지만) 응답하지 않는 컨트롤의 일부 누를 때, 응답하지 않는 화면에, 내가 볼 : 안드로이드 버전에서는 화면이 결국 않습니다 직전에 나는 로그 캣에서 다음을 참조 표시 : 감사받은

Fatal signal 11 (SIGSEGV) at 0xbbbadbeef (code = 1) 

어떤 도움 :

Got ACTION_DOWN but still waiting on stale event. Catching up. 

결국, 응용 프로그램은 단지와 함께, 자신을 닫습니다.

답변

1

UI 스레드에서 집중적 인 계산을 수행하는 경우 왜 그리 오래 걸리는지 설명 할 수 있습니다. 일부 백골트 계산이 필요한 경우 AsyncTask 또는 Service을 사용해보세요. 작업이 완료되면 UI 스레드에서 인터페이스를 업데이트하십시오.

고다크

+0

고맙습니다. Sencha Touch로 앱을 개발하고 Chrome에서 미리보기를하면 매우 가벼운 UI 인 것 같았지만 올바른 것처럼 보입니다. AsyncTask는 그 자리에있는 것처럼 보입니다. 고맙습니다. – munder

관련 문제