2011-10-16 23 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,以便将图像加载到主线程的单独线程中。谁能告诉我有没有更好的做事方式?

回答

相关问题