TaskStackBuilderを通知とともに使用して、戻るボタンが通過するバックスタックを作成しようとしています。私のアプリの通常の流れ:
- アクティビティAはランチャーから起動されます。
- ユーザーはAからアイテムを選択します。これにより、何をロードするかを追加してBが起動します。
- ユーザーがBからアイテムを選択すると、ロードするものに追加のCが起動します。
ユーザーがアプリを使用していないときにバックグラウンドで更新した後、通知を生成することがあります。この通知をクリックすると、AとBをスキップしてアクティビティCが起動します。設計ガイドラインに従ってバックスタックを作成しようとしているため、押し戻すとホーム画面ではなくアクティビティBに移動します。私の問題は、アクティビティBが、データベースから何を取得するかを指示するために、起動インテントに追加が必要なことです。
私の現在のTaskStackBuilderコード:
TaskStackBuilder sBuilder = TaskStackBuilder.create( this );
sBuilder.addParentStack( ActivityC.class );
sBuilder.addNextIntent( launchIntent );
pIntent = sBuilder.getPendingIntent( 0, PendingIntent.FLAG_ONE_SHOT );
通知をクリックすると、アクティビティCが正常に起動しますが、IllegalArgumentException
アクティビティBが要求するIDを認識していないため、押し戻すとContentProviderからので爆発します。この余分なものをバックスタックに入れる方法はありますか、それとも私は立ち往生していますか?