Вкратце моя проблема заключается в следующем: я вызываю метод фрагмента перед onResume () и не знаю почему.
Я не использую setRetainInstance.У меня есть активность с SearchView и ViewPager.У меня также есть FragmentStatePagerAdapter, который сохраняет 2 фрагмента в списке.
Мой SearchView работает как прослушиватель OnQueryTextListener.Когда я отправляю, внутри слушателя onQueryTextSubmit я вызываю:
//make changes in shared preferences
Fragment fragment = mAdapter.getItem(viewPager.getCurrentItem());
((View) fragment).onLocationChange();
Реализация onLocationChange в каждом фрагменте выглядит так:t обновить вид видимого фрагмента.Я вижу изменения, только изменяя мою текущую вкладку и обнаруживая изменение во фрагменте:
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
isVisible = isVisibleToUser;
// Make sure that fragment is currently visible
if (isVisible && isResumed()) {
onResume();
}
}
Знаете ли вы, почему это иногда не работает?Мой onResume выглядит так:
@Override
public void onResume() {
super.onResume();
if (!getUserVisibleHint()) {
return;
}
//work here
}
Дайте мне знать, если вам нужна дополнительная информация.Заранее спасибо.Франциско