うまくいけば、解決策ではないにしても、少なくとも行動の説明を誰かが私に理解してくれることを願っています。
問題:
一部のデバイスでは、ランチャーアイコンを押すと現在のタスクが再開されます。その他のデバイスでは、初期起動インテントが起動されます(効果的にアプリを再起動します)。なぜこれが起こるのですか?
詳細:
「ランチャーアイコン」を押すと、アプリが正常に起動します。つまり、最初の名前でActivity
アクションandroid.intent.action.MAIN
とカテゴリを指定してインテントが起動されますandroid.intent.category.LAUNCHER
。ただし、常にそうであるとは限りません。
ほとんどのデバイスでは、アプリが既に実行されている後にランチャーアイコンを押すと、そのプロセスで現在実行中のアクティビティが再開されます(最初のアクティビティではありませんActivity
)。OSメニューの「最近のタスク」から選択した場合と同じように再開します。これは、すべてのデバイスで必要な動作です。
ただし、選択した他のデバイスでは、異なる動作が発生します。
Motorola Xoomでは、ランチャーアイコンを押すと、現在実行中の内容に関係なく、アプリは常に最初の起動を開始し
Activity
ます。ランチャーアイコンは常に「LAUNCHER」インテントを開始すると思います。サムスンタブ2で、ランチャーアイコンを押すと、アプリをインストールしたばかりの場合、常にイニシャル
Activity
(Xoomと同じ)が起動しますが、インストール後にデバイスを再起動すると、ランチャーアイコンが代わりに起動しますアプリを再開します。これらのデバイスは、ランチャーアイコンが実行中のタスクを正しく再開できるようにする、デバイスの起動時に「インストール済みアプリ」をルックアップテーブルに追加すると思いますか?
私はそれを多くの答えを読んだ音私の問題に似ていますが、単に追加android:alwaysRetainTaskState="true"
または使用するlaunchMode="singleTop"
にはActivity
答えていません。
編集:
このアプリの最新の起動後、最初の再起動後にすべてのデバイスでこの動作が発生し始めていることがわかりました。気が狂っているように思えますが、再起動プロセスを調べても、実際には何が問題なのかを見つけることができません。
finish()
、それらActivity
を再開するのではなく、最初のものを再び開始する場合にそれらを要求するようです。