У меня этот сценарий реализован там, где у меня есть ящик навигации с вложенными фрагментами, которые добавляются в задний стек с тегом. Каждый фрагмент имеет следующее внедрен:Трансляционные приемники и фрагменты
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (rootView == null) {
rootView = inflater.inflate(R.layout.fragment_feed, container,
false);
// Doing initialisaion here
} else {
((ViewGroup) rootView.getParent()).removeView(rootView);
}
return rootView;
Это был лучшим способом, которым я мог думать, чтобы сохранить свои списки внутри этих фрагментов и их динамические и колонтитулы (Думая о реализации нового подхода здесь уже).
Кроме того у меня есть эти трансляции, когда пользователь ложах из моего приложения, так что я обновить эти списки, или при изменении местоположения:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(
locationBroadcastReciever,
new IntentFilter(UpdateLocationIntentService.LOCATION_CHANGED));
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(
significantBroadcastReciever,
new IntentFilter(UserDefaultsManager.SIGNIFICANT_CHANGED));
// Further code here
}
на отсоединение вызывается, когда фрагмент отсоединяется:
Этот способ сейчас работает, но я должен проверить, когда запрос завершен, если некоторые из представлений были уничтожены, потому что onDestroyView вызывается, когда я заменяю фрагмент другим, но onDetach не вызывается, так как фрагмент включен назад и i ts еще не снят.
Текущая реализация с проверкой nullpointer позволяет мне обновлять 4 фрагмента одновременно, когда пользователь вышел из системы (или зарегистрировался) или изменил местоположение, и ранее не было элементов в списке.
Я уверен, что есть лучший способ, но я не могу получить одинаковые результаты во что бы то ни стало.
Похоже, вы могли бы взглянуть на EventBus – cYrixmorten
Или вы можете попробовать Otto, что альтернатива EventBus. –
Благодарим вас за предложения. Я не думаю, что мы на правильном пути. События распространяются через мои фрагменты (это не проблема). Я сделал лучшее обходное решение, установив флаг, чтобы фрагмент был обновлен, и всякий раз, когда вызывается onResume, я бы сделал это обновление (таким образом, мне не нужно беспокоиться о том, что мои представления равны нулю). –