在一个应用程序中,我重复使用了Activity,它显示了特定日期发生的事情列表。使用Intent Extras指定日期。
我的问题是,如果用户从day=1
开始,然后从菜单中选择day=2
然后选择day=1
,那么我希望后退按钮转到{{ 1}}然后回家。也就是说,我想做day=2
,但不仅仅是基于活动的名称,还有它的附加内容。
没有接缝是适合此目的的任何意图标志。我已经考虑过使用REORDER_TO_FRONT
实现我自己的“子活动堆栈”,但它可能效果不好。
您是否在应用中解决了类似的问题?是否有一种方法可以以编程方式访问活动堆栈,并选择哪一个适合返回?
答案 0 :(得分:1)
管理您自己的活动堆栈!如果我没弄错的话,你每天都会使用相同的Activity来显示。将其设为单顶(FLAG_ACTIVITY_SINGLE_TOP)。在启动意图中,传递当前堆栈,在您的示例中为“121”。
通过使用较小的堆栈启动Activity来响应后退按钮事件:“12” - 或者如果堆栈已经是“”,则只需让Activity处理Back事件。然后如您所述,使用onNewIntent函数更新您的Activity。