如何手动管理活动堆栈?

时间:2016-11-16 14:53:24

标签: android android-intent android-activity

当我的筹码处于这种情况时:

A->B->C

我再次启动A实际上是单个实例然后堆栈变为

B->C->A

我想按一下按钮,活动堆栈再次变为:

A->B->C

1 个答案:

答案 0 :(得分:0)

你不能像这样直接访问活动堆栈,除非你想用History history = Flow.get(this).getHistory(); Iterator<Object> iterator = history.iterator(); List<Object> newHistory = new ArrayList<>(); while(iterator.hasNext()) { Object stackElement = iterator.next(); newHistory.add(stackElement); } // reorder elements in new history Flow.get(this).setHistory(History.newBuilder() .addAll(newHistory) .build(), Direction.FORWARD); 之类的意图标记来打它,直到它以某种方式类似于你想要实现的目标。

一种可能的解决方案是切换到不同的backstack实现,例如Flow,因为它变得非常容易:

print (pd.merge(df_calls, df_calls2, how='left'))
  cust_id  call_date  call_id  service_id
0       A 2016-02-03        1         1.0
1       A 2016-05-11        2         NaN
2       A 2016-10-01        3         2.0
3       A 2016-11-02        4         2.0
4       B 2016-01-10        5         3.0
5       B 2016-04-25        6         NaN