2011年5月19日木曜日

【Android】アプリを終了させる

マルチタスクがウリのAndroidですが、アプリから自分自身を終了させたい場合があると思います。

とりあえず3つほど方法を

①System.exit();
文字通り強制終了です。Activityのライフサイクルも無視しますからおすすめできないと思います。
もしかすると予想だにしない動作をする可能性があります。

②ActivityManager.restartPackage(PackageName);
なんか正統派な気がするようなww
ただ同一アプリ内でonPause中のActivityがあるとそれが起動します。
ActivityManager manager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
manager.restartPackage(getPackageName());

③Activity.moveTaskToBack(true);
これは該当するアプリのActivityをすべてonPause()状態にします。ですので復帰時にはonCreate()は通りません。
基本的にホームボタンを押したときと同じ動作です。

④Activity.finish()
こちらは③と違い、ActivityをDestryしますが、あくまでActivity単位ですのでアプリまるごと終了というわけではありません。戻るボタンを押したときと同じです。

ちなみにマニフェストにを記述するとActivityをスタックしなくなります。
ということはfinish()すればすべて終了しますね。ただし戻れないActivityになります。

0 件のコメント:

コメントを投稿