私のアプリはプッシュを受け取り、プッシュの種類に応じてさまざまなアクティビティを開きます。
保留中のインテントを使用TaskStackBuilder
して、マニフェストと組み合わせて合成バックスタックを作成しますandroid:parentActivityName
。
ここまでは、とても簡単です。アプリが起動されていない場合、すべてが期待どおりに機能します。ただし、アプリがバックグラウンドにある(タスクが実行されている) 場合、保留中のインテントも、マニフェストから定義された親で目的のアクティビティを開始しますが、既存のタスクをリセットします。問題は、その間にユーザーによって開始された他のアクティビティもクリアされることです。
したがって、達成したいことは次のとおりです。
- アプリが開始されていない場合は、合成バックスタック (MainActivity) で目的のアクティビティを開きます
- アプリが実行されている場合は、現在のタスクの順序を尊重し、目的のアクティビティをその上にプッシュします。
で動作させることができないようですTaskStackBuilder
。
いくつかの洞察をいただければ幸いです。