Android アプリで特定の Activity が呼ばれたらアプリを終了させる方法

公開日: : 最終更新日:2014/02/25 Android , ,

とある Activity が呼ばれたらアプリを終了させる方法です。

戻るボタンで戻りすぎることが出来てしまったので、ある Activity が呼ばれたらアプリを終了させる処理を組み込むために調べたことをメモしておきます。

icatch-finished_6609228299_mini

photo credit: mfhiatt via photopin cc

目次

1. 動作環境

動作環境ですが、Android アプリの開発には次の IDE を使っています。

android-2014-02-18-00-1

2. 背景

現在開発中の Android アプリは、アプリ起動中にスプラッシュ画面を表示して、アプリ実行の準備が完了したらトップ画面を表示するようにしています。
よくある起動パターンだと思います。

で、トップ画面にて端末の戻るボタンをクリックするとスプラッシュ画面が表示されてしまうバグが見つかり、その対応を行ったという背景です。

もしかしたらですが、 Fragment のスタック管理を自前のライブラリで行っているため、この現象は一般的ではないかもしれません。

3. サンプルソースコード

さて、上記の「背景」にあるように、戻るボタン経由での遷移でスプラッシュ画面が表示されてほしくないので、スプラッシュ画面の Activity にその対応を仕込みます。

戻るボタンがクリックされると onBackPressed メソッドが呼ばれるので、そこに「アプリを終了させる」処理を仕込みます。

アプリの終了には Activity#moveTaskToBack を実行すればいいので、コードはこんな感じになります。

@Override
public void onBackPressed() {
    moveTaskToBack(true);
}

次の記事にもあるように、メソッドの引数は true を指定します。

引数に false を指定した場合、アプリケーションの開始アクティビティ以外の呼び出しでは何もしなくなるため、通常は引数にtrueを指定して呼び出します。

Android で System.exit() を使ってはいけない理由と、終了方法のまとめ

4. その他の Android に関する記事

その他の Android に関する記事は次の通りです。
気になる記事があったらぜひチェックしてみてください!

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

no image

AlertDialog の背景をタップできなくする

AlertDialog はモーダルダイアログではないので背景をタップできてしまう。それだとちょっと不

記事を読む

icatch-thread_11187402315_mini

Android アプリ開発で “cannot perform this action inside of onloadfinished” とエラーメッセージが表示された場面の対処法

現在仕事で Android アプリ開発をやっていて、この "cannot perform this

記事を読む

icatch-android_6051805616_mini

Android アプリ開発で “Unable to resolve target ‘android-16′” などとエラーメッセージが表示された場合の対処法

"Unable to resolve target 'android-16'" などとエラーメッセー

記事を読む

no image

初めてのアンドロイドアプリ開発振り返り

始めてのアンドロイドアプリ開発が落ち着きをみせてきた。まだ熱が冷めないうちに簡単に振り返っておく。

記事を読む

icatch-bar_7241902618_mini

Android アプリで ActionBar の背景色を変更する方法

Android 3.x 系から追加された ActionBar。 開発中の Android アプリで

記事を読む

no image

位置情報取得に関する覚え書き、その2

以前、【Androidアプリ開発】位置情報取得に関する覚え書き を書いたが、試行錯誤を続ける中で変更

記事を読む

icach-smartphone_10858946293_mini

Android アプリで “external/chromium/net/disk_cache/stat_hub.cc:216″ とエラーメッセージが表示された場合の対処法

Android アプリ開発中にとある画面を表示しようとしたら "external/chromium/

記事を読む

no image

Android アプリで Google Analytics へトラッキングするサンプルクラス

お客さまからの要望があって対応。特に難しいことはないのだが、せっかくなので Gist にスニペットを

記事を読む

no image

WebView からデフォルトブラウザを開く

WebView に表示されているリンクは WebView ではなくデフォルトブラウザで開きたい、とい

記事を読む

no image

位置情報取得に関する覚え書き

思うように最新の位置情報を取得できなかったが、試行錯誤した結果「とりあえず大丈夫かな」って段階まで持

記事を読む

Googleアドセンス用(PC)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


− 六 = 1

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑