Является ли Android FragmentTransaction.replace() потокобезопасным?

Я помню, что только поток пользовательского интерфейса может изменять вид действия, поток без пользовательского интерфейса не может изменять вид. Так является ли метод 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(); } }

1 ответ

Метод commit() Планирует фиксацию этой транзакции. Фиксация происходит не сразу; это будет запланировано как работа над основным потоком, которая будет сделана в следующий раз, когда поток будет готов.

Другие вопросы по тегам