我有三個片段A,B,C,我的過程是A到B到C.如何控制片段onResume?
我希望當我切換到C並回撥給B時,B可以立即切換到A.
所以我在B上設置了onResume
的開關片段功能。
但結果是,我總是落在了上的一個片段,因爲當我改變到B的功能onResume
被稱爲
我知道我可以刪除transaction.addToBackStack(null);
那麼我就可以C到A ,但它會引起我的項目中存在一些錯誤,所以我儘量保持它。
是否有任何函數只有在C調用B時纔會啓動? 在此先感謝。
下面是我的切換功能:
private void switchFragment(Fragment fragment) {
FragmentManager manager = getActivity().getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.mainFrame, fragment, null);
transaction.addToBackStack(null);
transaction.commit();
}
我嘗試在B片段添加onResume
,但是這將是A到B,和則B回到A馬上。
@Override
public void onResume() {
super.onResume();
//go back to fragment A
switchFragment(NewHomepage.newInstance());
}
創建布爾並將其設置爲true,B時的交易發生C,並在檢查的onResume如果布爾是true then switchFragment –
謝謝你,你提醒我重點,它會起作用,但它的生命週期有任何可能,就像Activity onRestart,當回撥 –
以獲得更準確的結果時,你可以將布爾值保存在SharedPreference中在C的內部後臺和B的Onresume內,檢查是否爲真,然後去A –