2016-11-16 123 views
1

当我的筹码是在这种情况下:如何手动管理活动堆栈?

A->B->C 

我开始一个再次,实际上是一个实例,然后堆变成

B->C->A 

我要上按下一个按钮活动堆栈再次变为:

A->B->C 
+0

你能在单istance b运行和那么C? – firegloves

+0

不是它们不是单一实例。 –

+0

然后您需要清除堆栈并再次打开它们。 – mallaudin

回答

0

您无法直接访问活动堆栈这样,除非你想意图标志来冲它像REORDER_TO_FRONT UNT它以某种方式类似于你想要达到的目标。

一个可能的解决办法是切换到不同的堆栈中的实现,像Flow,因为那变得相当容易:

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);