0
我记得只有UI线程可以修改Activity的View,no-UI线程不能修改视图。 因此,您将在代码中找到的方法“replace()”是否是线程安全的? ?如果代码是正确的,为什么这种方法可以做到这一点(谢谢)Android FragmentTransaction.replace()是否是线程安全的?
这是代码:
public class SelectBookActivity extends Activity implements
BookListFragment.Callbacks
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// inflate a ListFragment and a container
setContentView(R.layout.activity_book_twopane);
}
// the method in the interface
@Override
public void onItemSelected(Integer id)
{
Bundle arguments = new Bundle();
arguments.putInt(BookDetailFragment.ITEM_ID, id);
BookDetailFragment fragment = new BookDetailFragment();
fragment.setArguments(arguments);
getFragmentManager().beginTransaction()
.*replace*(R.id.book_detail_container, fragment)
.commit();
}
}
您目前没有从线程调用该方法。在UI线程上调用onItemSelected。 – DeeV
@DeeV onItemSelected()是由ListFragment对象调用的,这个回调函数也在UI线程中? – Michael
是的。这样的UI操作全部在主线程上执行。 – DeeV