我是否仍然必须将ActivityContext传递给AsyncTask才能操作视图?

时间:2010-10-13 10:16:28

标签: android multithreading android-activity android-asynctask

此函数在UiThread上运行,但似乎并不意味着它也可以访问活动上下文。我应该向我的AsyncTask实现一个公共Setter传递活动(作为参考)?

protected void onPostExecute( Bitmap bitmap ) {
         //following is underlined red due to missing context
        (ImageView)findViewById(ResId)).setImageBitmap(bitmap); 
      }

1 个答案:

答案 0 :(得分:0)

我可以考虑两种选择。

  1. 如果AsyncTask是您活动的内部类,您可以使用getApplicationContext()来获取Context对象,而不传递活动对象。
  2. 如果必须从不同的方法访问ImageView对象,或者AsyncTask类处理的任务可以多次运行,您可能会考虑将ImageView对象存储为活动类的成员,因此您可以不需要访问它的上下文。