Android - 运行的片段是哪个线程?

时间:2011-10-06 20:24:35

标签: android multithreading fragment

片段是否在与创建它们的活动不同的线程上运行?

那么假设我有一个同步调用Web服务的片段,它是否在从服务器检索数据时阻止了我的主要活动?

2 个答案:

答案 0 :(得分:10)

如上所述here Android UI不是线程安全的,因此片段在与活动相同的主线程中运行。因此,最好将您的Web服务调用移动到AsyncTask中,否则您将面临冻结应用程序的风险。

答案 1 :(得分:6)

我认为他们是在UI线程上,因为Android在UI线程上保持UI操作这么大。调用commit()时,这些事务肯定在UI线程上执行,如stated in the documentation

好像你可以用

轻松测试它
Log.d("Fragment", "thread = " + Thread.currentThread().getName());

如果它在线程'main'上,则它在UI线程上。