我正在尝试使用带有通知的TaskStackBuilder来创建一个返回堆栈以供后退按钮通过。我的应用程序的正常流程:
- 活动 A 从启动器启动。
- 用户从 A 中选择一个项目,该项目启动 B 并附加要加载的内容。
- 用户从 B 中选择一个项目,这将启动 C 并附加要加载的内容。
有时,在用户不使用我的应用程序时进行后台更新后,我会生成通知。如果他们单击此通知,它会启动 Activity C,跳过 A 和 B。我正在尝试遵循设计指南并创建一个后退堆栈,因此当他们按下返回时,它将转到 Activity B 而不是主屏幕。我的问题是 Activity B 在其启动意图中需要额外的内容来告诉它从数据库中获取什么。
我当前的 TaskStackBuilder 代码:
TaskStackBuilder sBuilder = TaskStackBuilder.create( this );
sBuilder.addParentStack( ActivityC.class );
sBuilder.addNextIntent( launchIntent );
pIntent = sBuilder.getPendingIntent( 0, PendingIntent.FLAG_ONE_SHOT );
单击通知启动 Activity C 就好了,但是当我按下它时,它会IllegalArgumentException
从我的 ContentProvider 中爆炸,因为 Activity B 不知道要请求什么 ID。有什么办法可以把这个额外的东西放到后面的堆栈中,还是我被卡住了?