2014-04-25 2 views
0

My AsyncTask는 URL에서 이미지 축소판을로드하고 사용자 지정 ListView에 하나씩 표시합니다. 활동은 ViewThumbsActivity라고합니다.비동기 작업 - 다시 시작하는 방법

많은 경우 미리보기 이미지를 모두로드하는 데 약간의 시간이 걸릴 수 있습니다.

나는 사용자가 썸네일을 클릭하면 기능을 가지고 있고, 그것은 새로운 활동에 더 큰 이미지 (ViewImageActivity)

문제는 이것이다 열립니다

이 ViewThumbsActivity에서, 나는 AsyncTask를의 취소를 onStop이므로 사용자가 더 큰 것을보기 위해 축소판을 클릭하면 AsyncTask가 취소되고 활동의 나머지 축소판이로드를 중지합니다. 따라서 ViewImageActivity를 닫아 ViewThumbsActivity로 돌아 가면 축소판의로드가 중단됩니다.

onStop에서 AsyncTask를 취소하지 않겠습니까?
나는 그렇게 유혹하지만 해요 : 사용자는 또한 (가로드되기 전에) 썸네일을 선택하고 ActivityLast에가는 것을 선택

. ActivityLast에있을 때 이전 활동에서 AsyncTask를 계속하여 섬네일을로드 할 필요가 없습니다. AsyncTask를 멈추지 않으면 ActivityLast가 매우 느리게 실행됩니다!

하지만 사용자는 항상 뒤로를 클릭하여 더 많은 엄지 손가락을 선택할 수 있으므로 다시 클릭하면 미리보기 이미지를 다시 읽으려고합니다.

나는 github에서이 코드를 시도했지만 나에게는 효과가없는 것 같습니까? 당신이 ActivityLast에서 ViewThumbActivity을 시작하면

http://mobiarch.wordpress.com/2012/07/20/pausing-and-resuming-background-work-in-android/

답변

0

사용 startActivityForResult(Intent, int) 다음 onActivityResult(int, int, Intent) 정지 AsyncTask를한다.

Caching Bitmaps도 도움이되는지 확인하십시오.

+0

ActivityLast에서 뒤로 키를 누를 때 ViewThumbActivity가로드 될 때 AsyncTask가 중지된다는 제안을하면 따라 할 수 있을지 모르겠습니다. – user3437721

+0

시작된 활동 (ViewThumbActivity)이 완료되면 onActivity 결과가 호출됩니다. –