2011-11-03 65 views
9

如何在沒有恢復的情況下從後臺彈出碎片?我只是想從後面的堆棧中刪除,我不想顯示它。如何在沒有恢復的情況下從後臺彈出碎片?

+0

您是否找到解決方案?我注意到我的應用程序在大約140個碎片中崩潰,所以我想從大約100個碎片中刪除最老的碎片,但還沒找到辦法。 –

回答

0

這是建築問題。

1)假設我們有2個控制器(片段/活動):控制器A和控制器B. 它們都連接到某個模型的一個實例(您可以使用與服務綁定,Singleton模式或Application-繼承人階級,並吸取它)。 當控制器B發生了一些有趣的事情時,他通知模型有關它,然後模擬調用controllerA.finish()/ controllerA.remove()。 當然,我總是試圖儘可能好地實現這個解決方案,但有一個主要想法。 2)在另一種情況下,我在startActivity(intent)之後立即調用finish();我也可以編寫:startActivityForResult(intent,requestCode),並在完成第二個活動方法onActivityResult(requestCode,responseCode,intent)後調用 - 如果requestCode的相等,我完成活動。

+0

片段沒有完成方法。 –

+0

是否可以在onResume()或onStart()中插入簡單檢查權限 - 是否需要刪除? – QuickNick

0

如果您不使用FragmentTransaction的方法
public abstract FragmentTransaction addToBackStack (String name)
將其添加到後退堆棧中。不需要刪除它。

+1

我需要從回棧中刪除特定的片段。由於它恢復指定的片段,popBackStack不起作用。 –

+0

popBackStack中使用的標誌是什麼。嘗試使用POP_BACK_STACK_INCLUSIVE。 –

+0

是的,我用過這個標誌。 OnResume的後臺入口仍然被稱爲。 –

相關問題