2016-11-16 8 views
1

私のスタックは、このような状況にあります。アクティビティスタックを手動で管理する方法は?

A->B->C 

私はそれを再び開始するには、実際には、スタックは、私が活動スタックが再びなると、ボタンの押しにしたい

B->C->A 

なっ単一のインスタンスです。

A->B->C 
+0

あなたは、単一istanceのB及びCに起動することはできますか? – firegloves

+0

いいえ1つのインスタンスにはありません。 –

+0

スタックをクリアしてから再度開く必要があります。 – mallaudin

答えて

0

あなたはREORDER_TO_FRONT UNTのような意図のフラグとそれをパンチする場合を除き、あなたは、このように直接アクティビティスタックにアクセスすることはできませんそれは何とかあなたが達成したいものに似ています。

可能な解決策は、それが非常に簡単になりますので、Flowのように、異なるbackstackの実装に切り替えるには、次のようになります。

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); 
関連する問題