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

Android 从AsyncTask调用finish()时发生ClassCastException异常,android,android-asynctask,android-context,Android,Android Asynctask,Android Context,请帮助我,我是android新手。我有一个异步任务,它执行一些网络任务。完成之后。它应该完成上一个活动。所以我给asyntask提供了上下文,从那里我做了这个 ((Activity)context).finish(); java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity 这给了我一个例外 java.lang.ClassCastException: androi

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

((Activity)context).finish();
java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
这给了我一个例外

java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
这是错误的做法。如果是,那么最佳实践是什么

java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
当您尝试强制转换对象时,Java会引发ClassCastException 将一种数据类型转换为另一种数据类型

java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
你可以加上

java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
onBackPressed();
当活动检测到用户按下背部时调用 钥匙

java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
或者简单地加上

java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
finish(); // this.finish();

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

按照前面提到的编码方式),而不是传递
上下文
活动
对象本身传递给
异步任务

java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
这样做,您将不需要进行铸造

java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
活动中
您可以

java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
Activity mActivity = this;

然后通过
mActivity
而不是
context
,直接调用
mActivity.finish()

只要调用
finish()。。。。。。
java.lang.ClassCastException: android.app.ContextImpl cannot be cast to android.app.Activity
((YourActivityName)context).finish();