当我使用finish();
时,我的代码中出现此错误“方法finish()未定义类型SaveImageTask”。我错过了一些声明或任何东西。有人可以指导我这个。
public class SaveImageTask extends AsyncTask<String , String , String> {
private Context context;
private ProgressDialog pDialog;
boolean bCancelled=false;
public SaveImageTask(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pDialog = new ProgressDialog(context);
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.setOnCancelListener(cancelListener);
pDialog.show();
}
@Override
protected String doInBackground(String... args) {
// TODO Auto-generated method stub
// MY STUFF
return null;
}
@Override
protected void onPostExecute(String args) {
// TODO Auto-generated method stub
pDialog.dismiss();
}
OnCancelListener cancelListener=new OnCancelListener(){
@Override
public void onCancel(DialogInterface arg0){
bCancelled=true;
SaveImageTask.this.finish(); // <<----"The method finish() is undefined for the type SaveImageTask"
}
};
}
答案 0 :(得分:3)
使用SaveImageTask.this.finish();
答案 1 :(得分:2)
OnCancelListener cancelListener=new OnCancelListener(){
@Override
public void onCancel(DialogInterface arg0){
bCancelled=true;
finish(); // <<----"The method finish() is undefined for the type new DialogInterface.OnCancelListener(){}"
}
};
您在这里创建anonymous class
。只能在匿名类中直接访问外部类的最终变量和方法。 Activity
's finish
不是最终方法。您需要做的是引用“外部”类,即Activity
并调用其finish()
ActivityName.this.finish()
注意:你不能像ActivityName.finish()
那样进行静态调用,因此引用了活动的对象this
。
答案 2 :(得分:2)
只需使用,
(Activity(context)).finish();
修改强>
实际上你必须将你的上下文转换为Activity Context,
然后你可以使用Activity的finish()
方法,
类似的东西,
private Activity context;
public SaveImageTask(Context context) {
this.context = (Activity)context;
}
现在,只是
context.finish();