我有一個擴展了Activity的類,在它內部有一個擴展View的私有類,我調用它加載圖像。然而,我並不是應該使用AsyncTask,Handler還是其他方式在加載時同時在後臺加載圖像並顯示progressBar。對於AsyncTask,必須在UI線程上創建任務實例(我認爲這是在Activity類中)。但是所有的函數都在View類中,並且在使用AsyncTask時遇到了麻煩。使用Handler是一個不錯的選擇?在android中使用多線程加載圖像
public class LargeImageScroller extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new SampleView(this));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {...}
@Override
public boolean onOptionsItemSelected(MenuItem item) {...}
private static class SampleView extends View {
public SampleView(Context context) {...}
public boolean onTouchEvent(MotionEvent event) {...}
protected void onDraw(Canvas canvas) {...}
private boolean createMap(Context context) {...}
}
這是程序的粗略框架。 createMap()是我將圖像加載到畫布以顯示圖像的功能。但是,如果我聲明一個擴展AsyncTask的類,那麼任務實例只能在onCreate()中創建,而不能在其他地方創建,所以我有調用createMap()加載圖像的問題。我正在考慮使用Handler,以便將圖像加載到主線程的單獨線程中。誰能告訴我有沒有更好的做事方式?
感謝您的鏈接。 AsyncTask似乎爲我做了這項工作。 – user918197