我有一个扩展了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