85

への参照がある場合Context、現在の活動を終了することは可能ですか?

現在の活動への言及はありません。

4

7 に答える 7

246

はい、キャスト付き:

((Activity) ctx).finish();
于 2011-03-21T11:07:46.077 に答える
14

古い投稿であることは承知していますが、おそらく次のように呼ぶのが良い考えかもしれません。

if(context instanceof Activity){
                ((Activity)context).finish(); }

このようにして、不要な ClassCastExceptions を取得しないようにします。

于 2014-07-10T08:44:20.520 に答える
14

私の場合、次のように機能しました。

AsyncTask onPostExcute() でアクティビティを終了する必要があります。

私の AsyncTask クラスは別の public class であり、Context のパラメーターを持つコンストラクターがあります。

((Activity)(mContext)).finish();

上記のみが私にとってはうまくいきました...とにかく、@ 2red13と@lucyの回答からこのアイデアを得ました...すべてに感謝します...

于 2012-12-20T14:33:59.300 に答える
2

終了したいアクティビティの実行中のビューにアクセスできる場合 (たとえば、クリック リスナーにいる場合)、次のことができます。

((Activity)getContext()).finish();

(私をここに連れてきてくれた 2red13 に感謝します)。

于 2011-06-03T22:34:56.727 に答える
0

以下を使用してアクティビティを開始する場合:

startActivityForResult(i, 1);

次のように、finishActivity(1) を呼び出して、そのリクエスト コードで開始されたアクティビティを終了できます。

((Activity)getContext()).finishActivity(1);

私の場合、ハンドラー postDelayed で使用する必要があります。これを使用すると、どのアクティビティを終了しているかを確認できます。それが役に立てば幸い!

于 2015-10-07T05:19:18.333 に答える