サーバーメンテナンス時にアプリを動かしてもらいたくない(?)という要望があり、ダイアログを出してアプリを終了したい。アプリをキルするよりもHomeボタンを押下時の挙動の方がアプリに優しいと思って調べた。
#サンプルコード
public void alertServerMaintenance(String message) {
new AlertDialog.Builder(this)
.setMessage(message)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
onClickHomeBehavior();
}
})
.setCancelable(false)
.show();
}
public void onClickHomeBehavior() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}