我想连续制作两个片段交易。
Fragment1 fragment1 = new Fragment1();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, fragment1);
transaction.addToBackStack(null);
transaction.commit();
Fragment2 fragment2 = new Fragment2();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, fragment2);
transaction.addToBackStack(null);
transaction.commit();
但是,如果我这样做,会出现一些并发问题。 有没有办法让我实现一个回调函数,以便我可以在第一个事务完成后立即启动第二个事务?
答案 0 :(得分:1)
您可以手动刷新队列,从而导致执行挂起的片段事务。您正在寻找的电话是:
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(android.R.id.content, fragment, name).addToBackStack(null).commit();
fm.executePendingTransactions();
通过调用fm.executePendingTransactions();
,您可以在继续之前强制执行所有待处理操作。