我不应该使用FragmentManager的executePendingTransactions()(在主线程中)的情况是什么?

时间:2013-04-27 14:58:48

标签: android android-fragments

我正在学习如何使用片段,到目前为止我遇到了许多小问题。 FragmentManager的executePendingTransactions方法看起来可能有一些自己的方法,特别是因为官方Android文档中的说明中的这个注释:

  

如果要立即执行任何此类挂起操作,可以调用此函数(仅从主线程)来执行此操作。请注意,所有回调和其他相关行为都将在此调用中完成,因此请注意调用它的位置。   http://developer.android.com/reference/android/app/FragmentManager.html#executePendingTransactions()

听起来像是一个非常神秘的警告。这些“回调和其他相关行为”将如何影响我的申请?从主线程调用此函数时,这会导致问题吗?我找不到任何具体的例子,所以我向任何已经揭开这个警告神秘面纱的人寻求帮助:当我在主线程中使用executePendingTransactions的时候有什么例子,如果我做了会发生什么可怕的事情?或者只要它在主线程中总是安全吗?

2 个答案:

答案 0 :(得分:11)

当您处于UI线程之外的线程时,不应该调用此方法。

same lines

中指定
  

如果您想立即执行任何此类待处理操作,   您可以调用此函数(仅从主线程)来执行此操作。

答案 1 :(得分:6)

您无法从已执行的交易中调用它。 你会得到“递归进入executePendingTransactions”

举个例子: 您替换一个片段,然后调用executePendingTranstactions。 并在该片段的onCreate中替换另一个片段(使用activity的fragmentManager)

相关问题