2016-11-16 3 views
1

Когда мой стек в этой ситуации:Как управлять стеком действий вручную?

A->B->C 

я начинаю снова, что это на самом деле один экземпляр, то стек становится

B->C->A 

Я хочу, чтобы на нажатие кнопки стопка активность снова становится:

A->B->C 
+0

Вы можете запустить в одном istance B, а затем C? – firegloves

+0

Нет. Они не в одном экземпляре. –

+0

, тогда вам нужно очистить стек и снова открыть их. – mallaudin

ответ

0

вы не можете получить доступ к стеку активности непосредственно, как это, если вы не хотите, чтобы ударить его с намерением флажков как REORDER_TO_FRONT ЕНТ Это как-то напоминает то, чего вы хотите достичь.

Возможное решение было бы перейти на другую реализацию backstack, как 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); 
Смежные вопросы