2017-01-20 13 views
-1

私はアンドロイドに慣れ親しまされて助けてください。私はいくつかのネットワークタスクを行う非同期タスクを持っています。それを完了した後。以前のアクティビティは終了するはずです。だから私はasyntaskするコンテキストを与え、そこから私はこのClassCastException AsyncTaskからfinish()を呼び出す際の例外

((Activity)context).finish(); 

を行なったし、それは私に

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

をこの例外を与え、これは間違ったアプローチです。はいの場合、これにはどのようなベストプラクティスがありますか。あなたが別のデータ型のオブジェクト をキャストしようとすると、

+1

ちょうどあなたがActivity' – TOP

+0

'である場合、何私は......活動に – FaisalAhmed

答えて

1
((YourActivityName)context).finish(); 
+0

おかげShreenivasませんでした。')( '仕上げを呼び出しますこれは私のために働いた – FaisalAhmed

0

はClassCastExceptionがJavaのでスローされます。

あなたは活動が戻っ キーのユーザーの押しを検出したときに呼び出され

onBackPressed(); 

を追加することができます。

または単に述べたように、あなたがコード化されている方法

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

それとも

this.getContext().finish(); 
0

を追加)、代わりにContextを渡す行うあなたAsyncTask

Activityオブジェクトそのものを渡しますあなたはキャスティングをする必要はありません。で

Activityあなたは

Activity mActivity = this; 

を行い、その後、mActivityの代わりcontextを渡し、直接その上にmActivity.finish()を呼び出すことができます。

関連する問題