Я изучаю создание навигационного ящика в Android. При чтении this, я не могу понять следующий код:
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
В документации написано:
Синхронизировать состояние индикатора/ связанный DrawerLayout.
Это нужно вызвать из метода Activity onPostCreate для синхронизация после восстановления состояния экземпляра DrawerLayout, и в любое другое время, когда государство может расходиться таким образом, чтобы ActionBarDrawerToggle не был уведомлен. (Например, если вы остановитесь пересылка соответствующих событий ящика в течение определенного периода времени.)
Далее я прочитал о onPostCreate()
из sstn answer здесь: OnPostCreate in Fragment
onPostCreate() в основном предназначен для использования в каркасе (хотя вы можете переопределить его). Документы говорят, что он вызывается после onStart() и onRestoreInstanceState().
Это может привести к предположению, что он может быть вызван до onResume() и, вероятно, до того, как будет отправлен цикл сообщений событий (включая метод AsyncTask onPostExecute()), что означает onPostExecute() будет запускаться только после onPause().
Как onPostCreate() неправильно документировано и не предназначено для использования приложений - я мог бы сказать, что это не очень хорошая идея. полагайтесь на любое наблюдаемое поведение.
Из этих двух я ничего не мог понять. Что именно делает syncState()
и почему оно должно быть внутри onPostCreate()
? Может ли кто-нибудь объяснить это лучше?