0

일부 응용 프로그램이 시작될 때 시작 화면 작업을 시작하고 사용자 계정이 응용 프로그램에 연결되어 있는지 확인합니다. 앱이 있으면 앱이 주 활동을 시작하고 자동으로 스플래시를 우회합니다. 사용자 계정이 없으면 AsyncTask에 데이터베이스를 가져와 사용자에게 로그인/계정 만들기를 요청합니다.시작시 대화 상자 조각 표시 안 함

처음 시작할 때 앱은 서버와 동기화되어 데이터베이스를 가져옵니다. 이 데이터베이스가 풀리면서 표시 할 불확실한 진행률 표시 줄이있는 DialogFragment을 얻으려고합니다. 지금은 DialogFragmentAsyncTaskonPreExecute()에 생성되고, 메서드는 AsyncTask이 실행됩니다.이 문제는 대화 상자가 화면에 표시되지 않는다는 것을 의미합니다.

대화 상자의 onCreate()이 실행 중이고 동기화가 성공했음을 보여주는 디버그 로깅이 있습니다. 대화 상자는 각각 UI 스레드에서 실행되는 onPreExecute()onPostExecute()에 표시되거나 해제됩니다. 데이터베이스 다운로드가 빠르면이 작업은 그리 길지는 않지만 에뮬레이터에서 대화 상자가 잠깐 깜박 거리는 것을 보지 못한다는 것을 알고 있습니다.

에뮬레이터에서 모든 대화 상자의 프레임을 건너 뛰고 있거나 실제로 화면에 그려지는 지점에 대화 상자를 만들지 않는 경우 '문제'일 수 있습니까?

답변

0

설명에서 두 가지 이유가 있습니다.
1. DialogFragment가 올바르게 표시되지 않을 수도 있습니다 (example 참조).
2. AsyncTask가 다른 스레드 (UIThread가 아님)에서 시작되므로 AsuncTask에서 UIThread에 액세스해야한다면 onProgressUpdate을 다시 시도하십시오. tutorial을 참조하십시오.
희망 사항은 도움이되었습니다.

관련 문제