Android的FragmentTransaction.commit()方法线程安全吗?

ces*_*sar 2 android android-fragments

我只是好奇我是否必须在UI-Thread上调用它.根据文档,commit当有时间时,将在未来的UI线程上运行.如果是这种情况,我可以FragmentTransaction.commit()在另一个线程上运行吗?

小智 13

这个问题已经有一年了,但我想解决这个问题,因为我怀疑这是一个很多人都会遇到的问题.

使用FragmentTransactions(包括调用commit方法)在非UI线程上是安全的,因为FragmentTransaction中发生的任何工作都不会直接操作UI.FragmentTransaction上的方法调用被简单打包为要执行的工作指令列表.

一旦调用了commit方法,该指令包就会被发送到UI线程进行处理.