2011-10-16 41 views
0

我有一個擴展了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,以便將圖像加載到主線程的單獨線程中。誰能告訴我有沒有更好的做事方式?

回答

相關問題