読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

Androidで別のActivityを終了する

Android Java

FirstActivityからSecondActivityを起動してFirstActivityを終了したいときなどのメモ。
と言うかほとんど ここ を参考にすればわかる。

Flagを作る方法らしい。3つのjavaソースファイルを作る。1つはFActivity,それとSActivityでEFlagクラスの3つを書くファイル。(FはFirst,SはSecond,EはExitを表す感じで...)
あとimportとかpackageの記述は省略する。

//EFlag.java
public class EFlag{
    private boolean flag;
  
    public void setFlagState(boolean f){ flag = f;}
   
    public boolean getFlagState(){return flag;}
}

上のがまずEFlagクラス。単純なboolean1つとそのsetterとgetterだけがある。

//FActivity.java
public class FActivity extends Activity{
    public static EFlag mflag;
    @Override
    public void onCreate(Bundle savedInstanceState){
         super.onCreate(savedInstanceState);
      
         Intent intent = new Intent(this.getApplicationContext(),SActivity.class);
         intent.setAction(Intent.ACTION_VIEW);
         startActivity(intent);//Activity切り替え(SActivity起動)
    }

    @Override
    public void onRestart(){
        super.onRestart();
        if(mflag.getFlagState()){
            finish();
        }
    }
}

で、最後にSActivity

//SActivity.java
public class SActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        FActivity.mflag.setFlagState(true);//ここでFActivityが終了処理に入る。(と思う)
    }
}

という感じ。ほとんど参考サイトのコピーだけど。正直java詳しくないしAndroidのActivityもよく理解してないからわからないけど...
onRestart()は停止した後に開始する直前に呼ばれてこの後onStart()につながるところらしいんだけど...
よくわからない。
とりあえず実際に上のコードで動かしてみてFActivityだけが終了してSActivityは残るという感じに動いた。
こんなんでいいのか...

最後に改めて参考サイトを貼っておくよ

https://groups.google.com/forum/?fromgroups=#!topic/android-group-japan/uphpoHG9jy4

Firefox ブラウザ無料ダウンロード