ClassCastException从AsyncTask调用finish()时发生异常

时间:2017-01-20 10:47:26

标签: android android-asynctask android-context

请帮助我是android的新手。我有异步任务,它做一些网络任务。完成后。它应该完成以前的活动。所以我给asyntask上下文,从那里我做了这个

((Activity)context).finish();

它给了我这个例外

java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity

这是错误的做法。如果是,那么最佳做法是什么。

3 个答案:

答案 0 :(得分:1)

((YourActivityName)context).finish();

答案 1 :(得分:0)

  

当您尝试强制转换Object时,Java会抛出ClassCastException   一种数据类型到另一种数据类型。

您可以添加

onBackPressed();
  

当活动检测到用户按下背面时调用   键。

或者只需添加

finish(); // this.finish();

或者

this.getContext().finish();

答案 2 :(得分:0)

您提到的编码方式),而不是传递ContextActivity对象本身传递给AsyncTask

这样做你不需要进行施法。

Activity你可以做

Activity mActivity = this;

然后传递mActivity而不是context并直接在其上调用mActivity.finish()