アプリを終了する方法 | Androidアプリ開発

この記事ではAndroidアプリ開発において、アプリを終了する方法を紹介します。
スポンサーリンク

アプリを直接に終了させる方法はない!

ではアプリを終了させるにはこのメソッドを…と紹介したいところですが、
アプリを終了させるようなメソッドは存在しません。

これはAcitivtyのライフタイム設計思想から、
アプリをいきなり終了するというのは外れているからだと思います。


「そんなこと言ってもアプリを終了させたいんだもん」とう方のために、
少し無理やりですがアプリを終了させる方法を紹介します。
スポンサーリンク

アプリを終了させる方法

アプリを終了させるにはすべてのActivityをfinishさせれば良いです。

つまり、アプリのどこかにActivityのリストを作成しておき
アプリを終了させたいときにリスト内のすべてのActivityをfinishさせます。

なお通常の方法では、
アプリのどこからでもアクセスできるリストというものは作成できませんが、
以下の記事で紹介したApplicationオブジェクトを利用する方法で可能です。

サンプルコード

以下にサンプルコードを記載します。
なお、このサンプルコードは上記の記事のApplicationオブジェクト共有の方法を前提に書いていますので、
よく分からない場合は上記の記事を参照ください。

Common.java
public class Common extends Application {

    ArrayList<Activity> ActivityList = new ArrayList<>();

    @Override
    public void onCreate() {
        super.onCreate();
    }

    public void killApp() {
        for(Activity a : ActivityList) a.finish();
    }
}

MainActivity.java
public class MainActivity extends Activity {

    Activity a;
    Common c;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        a = this;
        c = (Common) getApplication();
        c.ActivityList.add(a);

        findViewById(R.id.b1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(a, SecondaryActivity.class);
                startActivity(i);
            }
        });
    }
}

SecondaryActivity.java
public class SecondaryActivity extends Activity {

    Activity a;
    Common c;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_secondary);

        a = this;
        c = (Common)getApplication();
        c.ActivityList.add(a);

        findViewById(R.id.b2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}

このサンプルコードではActivityを起動するたびに、
Application継承オブジェクトであるCommon内のActivityListに追加しています。

そして、アプリを終了させたいときはActivityList内のすべてのActivityをfinishさせます。
スポンサーリンク

まとめ

この記事ではアプリを終了させる方法を紹介しました。

少し強引なやり方となってしまいましたが、参考になれば幸いです。
Androidアプリ開発
スポンサーリンク
Androidアプリ開発 記事一覧
Androidアプリ開発 記事一覧
Androidアプリ開発の記事一覧を以下にまとめています。
良かったらご覧ください。

Androidアプリ開発 記事一覧
カテゴリ広告: Androidアプリ開発
スポンサーリンク: Androidアプリ開発を個人レッスンで学ぶなら...?
Androidアプリ開発は一人で学んでいても限界があります。
そこでオススメなのがオンラインでAndroidアプリ開発を学べる「コードキャンプ」。
個人レッスンで丁寧に教えてくれます。

無料レッスン体験も可能なので、まずは無料体験から試してみてはいかがでしょうか?

Androidアプリ開発個人レッスン
一般広告: モバイルバッテリー
スポンサーリンク
Aresei-note
タイトルとURLをコピーしました