我正在尝试使用TaskStackBuilder和通知一起创建返回栈,以便通过后退按钮进行导航。我的应用程序通常流程如下:
- 从启动器启动Activity A。
- 用户从A中选择一个项目,该项目使用extras启动B。
- 用户从B中选择一个项目,该项目使用extras启动C。
有时,在用户不使用我的应用程序时进行后台更新后,我会生成一个通知。如果他们单击此通知,它将跳过A和B而启动Activity C。我正在尝试遵循设计指南并创建返回栈,因此当他们按下后退按钮时,它将转到Activity B而不是主屏幕。我的问题是Activity B需要在启动意图中使用extra来告诉它从数据库中获取什么。
我的当前TaskStackBuilder代码:
TaskStackBuilder sBuilder = TaskStackBuilder.create( this );
sBuilder.addParentStack( ActivityC.class );
sBuilder.addNextIntent( launchIntent );
pIntent = sBuilder.getPendingIntent( 0, PendingIntent.FLAG_ONE_SHOT );
点击通知可以成功启动活动C,但是当我按后退键时,由于Activity B不知道要请求什么ID,我的ContentProvider抛出了一个IllegalArgumentException异常。有没有办法将这个附加信息添加到返回堆栈中,或者说我现在陷入了困境?
点击通知可以正常启动Activity C,但是按下返回键时,由于Activity B不知道要请求哪个ID,所以我的ContentProvider会抛出IllegalArgumentException异常。是否有任何方法将此附加到返回堆栈中或我是否无能为力?