への参照がある場合Context
、現在の活動を終了することは可能ですか?
現在の活動への言及はありません。
はい、キャスト付き:
((Activity) ctx).finish();
古い投稿であることは承知していますが、おそらく次のように呼ぶのが良い考えかもしれません。
if(context instanceof Activity){
((Activity)context).finish(); }
このようにして、不要な ClassCastExceptions を取得しないようにします。
私の場合、次のように機能しました。
AsyncTask onPostExcute() でアクティビティを終了する必要があります。
私の AsyncTask クラスは別の public class であり、Context のパラメーターを持つコンストラクターがあります。
((Activity)(mContext)).finish();
上記のみが私にとってはうまくいきました...とにかく、@ 2red13と@lucyの回答からこのアイデアを得ました...すべてに感謝します...
終了したいアクティビティの実行中のビューにアクセスできる場合 (たとえば、クリック リスナーにいる場合)、次のことができます。
((Activity)getContext()).finish();
(私をここに連れてきてくれた 2red13 に感謝します)。
以下を使用してアクティビティを開始する場合:
startActivityForResult(i, 1);
次のように、finishActivity(1) を呼び出して、そのリクエスト コードで開始されたアクティビティを終了できます。
((Activity)getContext()).finishActivity(1);
私の場合、ハンドラー postDelayed で使用する必要があります。これを使用すると、どのアクティビティを終了しているかを確認できます。それが役に立てば幸い!