/var/log/messages

Jan 14, 2014 - 1 minute read - Comments - android

singleTask な Activity がランチャから起動された時の挙動

標題がちょっと微妙ですがご容赦願います。

singleTask な Activity からある Activity を startActivity している時に HOME ボタンを押して HOME な Acitivity を表示している時、HOME 長押しなどで起動されているタスクの一覧を表示してご所望のソレを選択すれば話は早いのですが、その基本的な使い方をスルーでランチャアイコンをタップして同様の挙動にして欲しいという依頼が来た。

singleTask の場合、ランチャから起動するとスタックは破棄されてトップな Activity (singleTask な Activity) が前面表示される、はどうも仕様らしい。

復帰時に呼び出される callback は順に

  • onActivityResult
  • onNewIntent
  • onResume

な模様 (もしかすると他にもあるかもしれません)。launchMode を standard にすればご所望な挙動になることも承知しているのですが、複数起動したくはない、との由。

仕方が無いので SharedPreferences に状態を保存して singleTask な Activity でもう一つの Acitivity なお仕事もさせることで無理矢理辻褄を合わせております。

onNewIntent で設定を確認して云々、という形。

そろそろこんな力ワザで問題解決するのは止めにしたい。