2016-11-16 104 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);