在使用AsyncTask调试Android时暂停

时间:2013-07-18 10:09:32

标签: android android-asynctask classcastexception

以下是我的活动代码的一部分:

button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                IParser = new ImageParser(MainActivity.this, EarthqpicUrl);
                IParser.execute();
            }
        });

这是我的AsyncTask代码的一部分:

AsyncResponse lempar; *//this is An interface*
public ImageParser(Context actv, String EarthqpicUrl){
   this.actv=actv;
   this.EarthqpicUrl=EarthqpicUrl;
   this.lempar = (AsyncResponse) actv;
}

这是界面代码:

import android.graphics.Bitmap;

public interface AsyncResponse {
    public void processFinish(Bitmap output);
}

我使用相同的代码来解析JSONData,它可以工作。但是当我在类名之类的修改之后使用相同的构造函数时,它在调试时显示错误:

Thread [<1> main] (Suspended (Exception ClassCastException))
ImageParser.<init>(Context, String) Line:25
MainActivity$1.onCllick(View) line: 23 

这段代码有什么问题? 有人能帮助我吗?非常感谢

这些是我在JSONParser中使用的代码的一部分:

AsyncResponse delegate;

public JSONParser(Context actv,String url){
    this.actv=actv;
    this.url = url;
    this.delegate = (AsyncResponse) actv;
}

与JSONParser相同,我使用名为AsyncResponse的接口。

1 个答案:

答案 0 :(得分:1)

您正在将Context类型的对象投射到AsyncResponse

this.lempar = (AsyncResponse) actv;

这就是造成错误的原因。