30 개 이상의 이미지를 페이지에로드해야합니다 (티저 텍스트 포함). AsyncTask를 통해 모든 이미지를로드하지만 기본 스레드의 뷰에 대한 수정 만 수행 할 수 있기 때문에 현재 레이아웃을 수정할 수 없습니다. 내 응용 프로그램이 "페이지로드"동안 응답하지 않아도되도록 모든 것을 비동기 적으로로드하는 가장 좋은 방법은 무엇입니까?안드로이드 배경보기 활동을위한 활동
답변
왜 레이아웃을 수정할 수 없습니까? AsyncTask
의 경우 UI 스레드에서 실행되도록 onProgressUpdate이 있어야합니다. doInBackground
코드에 publishProgress으로 전화하면됩니다.
== 업데이트 ==는
private class LoadImageTask<Url, String, String> extends AsynTask{
doInBackground(Url... urls){
for(int i=0; i<urls.length; i++){
File img = DownloadImage(urls[i]); // Your download method..
publishProgress(img.filename); // Suppose it is saved in sd card
// publish progress will call onProgressUpdate immediately, but on different thread
}
}
onProgressUpdate(String filename){
// Update the UI.. this method will run on UI thread
displayImage(filename);
}
}
난 당신이 백그라운드에서보기를 구축 할 수 있다고 생각하지 않습니다. 진행률 대화 상자를 표시하여 사용자가 왜 앱이 바쁜지를 이해할 수있는 가장 좋은 방법입니다. 클래스 활동을 확장하는 경우
작업이 별도의 스레드에서 실행되고 있지 않으면 진행 대화 상자도 차단됩니다. – xandy
, 당신은 여전히 비동기하지만 실행
runOnUiThread(new Runnable() {
public void run() {
//Update UI elements in this block
}
});
이것이 끝날 때까지 내 메인 스레드를 차단합니까? – Jacksonkr
대기열에있을 때 주 스레드에서 실행됩니다. 이미지를로드하는 스레드는 여전히 계속 실행됩니다. – PinoyCoder
- 1. 안드로이드 활동을위한 모의 객체 생성하기 (Junit)
- 2. 안드로이드 활동을위한 코드 재사용을 수행하는 방법은 무엇입니까?
- 3. Android : 배경보기 변경 전경보기
- 4. 토글 배경보기
- 5. 메시지 활동을위한 모범 사례
- 6. 안드로이드 : 활동
- 7. 안드로이드 : 활동
- 8. 조각 활동을위한 최적의 디자인 패턴
- 9. 편집 활동을위한 문맥 액션 바
- 10. 여러 활동을위한 db4o 데이터베이스 db3o
- 11. android 앱 활동을위한 유휴 시간 초과
- 12. 다른 활동을위한 활동의 바로 가기 만들기
- 13. 내 활동 안의 외부 활동 표시 안드로이드
- 14. 안드로이드 활동 호출 다른 활동 방법
- 15. 안드로이드 수명주기 활동
- 16. 백그라운드에서 안드로이드 활동 실행
- 17. 버튼으로 활동 시작 안드로이드
- 18. 안드로이드 활동 스택 해제하기
- 19. 안드로이드 활동 간의 ProgressBar?
- 20. 안드로이드 레이아웃 형태로 활동
- 21. 안드로이드 - TabActivity 내부 활동
- 22. 안드로이드 활동 잠금
- 23. 안드로이드 싱글 활동
- 24. 안드로이드 : 활동 매니페스트
- 25. 안드로이드 활동 서비스에 바인딩
- 26. 안드로이드 새로운 활동 시작
- 27. 안드로이드 : 어떤 활동
- 28. 안드로이드 : 내 특정 활동
- 29. 안드로이드 탭 활동
- 30. 활동 내역 안드로이드
의지를 사용할 수 있습니까? 아니면 내 메인 스레드를 "일시 중지"할까요? – Jacksonkr
onProgressUpdate가 일시 중지되므로 UI 만 업데이트됩니다. Loading가 doInBackground에서 수행된다고 가정합니다. 내 업데이트 대답을 확인하십시오. – xandy