为什么MvxCachingFragmentCompatActivity手动调用ExecutePendingTransactions?

时间:2016-07-19 11:33:52

标签: performance android-fragments mvvmcross

对Xamarin.Android使用mvvmcross。为什么MvxCachingFragmentCompatActivity手动调用ShowFragment方法中的ExecutePendingTransactions?这次电话采取了什么行动?正如我所看到的,导航时几个设备可能需要大约秒。 感谢

1 个答案:

答案 0 :(得分:1)

如果下一步操作在执行任何其他操作之前依赖于commit()的处理,那么基本上是必要的。

特别是MVVMCross:

OnFragmentChanging(fragInfo, ft);
ft.Commit();
SupportFragmentManager.ExecutePendingTransactions();
OnFragmentChanged(fragInfo);

如果应用了更改,显然只应调用OnFragmentChanged-Event。只需从MvxCachingFragmentCompatActivity中获取其中一个代码段。

来自API documentation

  

提交FragmentTransaction后   FragmentTransaction.commit(),计划执行   在进程的主线程上异步。如果你想   立即执行任何此类待处理操作,您可以调用它   函数(仅从主线程)这样做。请注意所有回调   和其他相关的行为将在这个电话中完成,所以   小心从哪里调用它。