4

我想连续进行两个片段事务。

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();

但是,如果我这样做,将会有一些并发问题。有没有办法让我实现一个回调函数,以便我可以在第一个事务完成后立即开始第二个事务?

4

1 回答 1

2

您可以手动刷新队列,导致挂起的片段事务被执行。您正在寻找的电话是:

    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();

    ft.replace(android.R.id.content, fragment, name).addToBackStack(null).commit();
    fm.executePendingTransactions();

通过调用,fm.executePendingTransactions();您可以强制所有待处理的操作在继续之前发生。

于 2014-08-26T21:23:56.983 回答