내가 이 즉시 내 응용 프로그램이 실행될 때, 나는 그것은 조금 시간이 걸릴 것 REST 서비스, 에 대한 요청을 보낼 수 있고, 다음하고있는 무슨이다, 그래서 나는 onCreate()
에서 보여주는 로딩 화면의안드로이드 앱의 REST 서비스 요청 중 로딩 화면이 표시됩니까? 현재 여기
생각 내 활동의 첫 번째 일은 로딩 화면 (진행 대화 상자)을 표시하는 것입니다. AsyncTask를 사용하여 백그라운드 활동을 시작합니다. 즉, REST 서비스를 요청하고 onPostexecute()
대화 상자를 닫은 다음 setContentView(myxml);
을 수행하고 UI를 업데이트합니다.
이 접근법을 개선 할 수 있습니까? I이었다 직면
문제,
때때로, 쓰레기 수집기가 (다양한 이유로 인해로)을 시작하고 내 응용 프로그램도 REST 서비스를 요청 때문에 가비지 컬렉터의 영원히 로딩 화면에서 응답이 전송 때문에하지 않습니다 그것의 약간의 모닝콜이오고 나머지는 재앙이고 힘은 닫힌다.
때때로 ForceClose조차도 GC가 빠를 수는 없습니다. 그래서 나는 심지어 돌아가고 화면을 로딩 할 수 없다. 그 시점에서 제가 할 수있는 일은 홈으로 돌아 오는 것입니다. 그 후에도 내 앱으로 돌아 오면 여전히로드 중입니다. 따라서이 접근 방식은 나쁜 디자인 인 것 같습니다. 올바른 접근 방식은 무엇입니까?
나는 완전히 나쁘지 않다고 생각하지 않습니다. 코드화 된 예제 없이는 말하기 어렵습니다. 하지만 장치의 방향이 바뀌면 onCreate() 및 onDestroy()를 올바르게 처리하는 한 오히려 당연한 것처럼 보입니다. ForceClose는 GC 때문에 발생하지 않아야합니다. onPostExecute가 실제로 발생할 수 있는지 확인하고 전체 스레드 풀을 굶기 지 않도록 나머지 서비스 호출에 시간 초과를 설정하십시오. –