2012-06-17 3 views
1

주 활동은 새로운 활동을 시작하고 파일 경로의 문자열 배열을 제공합니다. 이와 같이 :Android 새로운 활동 UI는 코드가 완료된 후에 만로드됩니다.

Intent i = new Intent(getBaseContext(), upScreen.class); 
i.putExtra("paths", selPhotos); 
startActivity(i); 

새로운 활동에서 진행 막대를 업데이트하는 동안 소켓을 통해 한 번에 하나씩 파일을 서버로 보냅니다. 새로운 활동의 UI는 파일이 전송 된 후에 만로드됩니다! 진행률 표시 줄 만 보입니다. 거래를 시작하기 전에 UI가 완전히 초기화 될 때까지 기다리는 방법은 무엇입니까?

소켓 명령을 비동기 적으로 수행하고 소켓 명령을 수행하는 스레드를 시작하는 코드를 onWindowFocusChanged에서 실행했지만 성공하지 못했습니다.

도와주세요!

+0

당신이 내 업로드가 이미 새 스레드에서 수행되는 –

답변

0

업로드가 UI 스레드를 차단하고있는 것처럼 들립니다. 업로드를 수행하려면 AsyncTask 또는 다른 형식의 새 스레드를 사용해야하며 UI 스레드에서 진행되는 작업은 Activity의 GUI를 표시하고 진행률 막대를 업데이트하는 것입니다. http://developer.android.com/reference/android/os/AsyncTask.html

+0

을 시도 어떤 코드를 게시 할 수 있습니다 : AsyncTask에 대한

문서는 쉽게 업 로더의 요구 사항에 확장하는 다운로더 예를 사용합니다. 나는 참고 견본을 적용하려고 노력할 것이다. –

+0

UI 스레드가 새로운 활동의 onCreate 또는 onStart에서 어떻게 든 차단하고 있다는 것은 거의 확실합니다. 코드를 보지 않고는 더 이상 말할 수 없습니다. 성공하지 못했다면 새로운 활동을위한 코드를 게시하십시오. 호출 코드만으로는별로 도움이되지 않습니다. – Gene

관련 문제