寒川アクアブログ

美容師しながらアプリ開発していて水草が趣味の私のブログです

アクティビティをスタックに残さなくする

例えばタイマーアプリを作っていて、

タイマー終了時に透明なアクティビティを開始して、

アラートダイアログを表示し、

OKが押されたり、dismissされたりしたときに

そのアクティビティをフィニッシュするとします。


この透明アクティビティがスタックに残っていると、

端末の”□”をタップしたときに表示され、ユーザーがそれをタップすると

またアラートダイアログが表示されるので、タイマーの挙動としては不自然です。

透明アクティビティがスタックに残らないようにするには、マニフェストに以下のように記述します。

<activity
    android:name=".MyActivity"
    android:excludeFromRecents="true"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
         >

android:excludeFromRecentsをtrueにするだけです。

また、テーマを@android:style/Theme.Translucent.NoTitleBarにした場合、
アラートダイアログのUIデザインが昔っぽいものになってしまうので、
これを避けるには、独自にスタイルを定義する必要があります。