アクティビティーAを持っていて、アクティビティーBを開始し、それ自身を殺すとします。今私はホームボタンを押す(または、アプリを別の方法のままにしておく)(アクティビティBのonPause-> onStopを引き起こす)、ランチャーのアプリアイコンをもう一度クリックする。何が起こるかは、アクティビティAが再び開始されたことです(もちろん、マニフェストXMLでインテントフィルタを指定したためです)。もう一度アクティビティAを起動しなくても、アクティビティBに戻るだけの簡単な方法はありますか?私は基本的に、アクティビティBのonStart-> onResumeに戻りたいと思います。私のアプリケーションのランチャーアイコンを押した後の最後のアクティビティーに戻る
私の意図-フィルタは次のようになります。ここ
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
最後に表示されたアクティビティがBだったときにホームボタンをクリックし、ランチャーアクティビティからアプリを再起動すると、Bがアンドロイドによって殺されなかった場合にアクティビティAが開始されます。 – mkso
@mksoこれは正確には役に立ちません。 OPはこれをすでに知っています。彼はいつもアクティビティBに行きたいと思っています。 –
私は実際に方法を見つけましたが、ハッキーに感じます。最後のアクティビティのシングルトンクラスに静的な参照を保持します(メモリリークを防ぐためにonStartでこれをクリアします)。 IアクティビティAが再び開始されると、この値をヌルに対してチェックします。 NULLでない場合は、その静的変数をターゲットクラスとして、フラグFLAG_ACTIVITY_REORDER_TO_FRONTを使用してインテントを開始します。しかし、ハッキーな感じ。 –