Если у вас одна активити или данные необходимо передовать только внутри этой активити, то можно использовать такой трюк:
1) создаем модель
2) создаем пустой фрагмент в конструкторе создаем модель, а в onCreate вызываете метод setRetainInstance(true);(это защитить фрагмент от уничтожения и пересоздания)
public class SignInWorkerFragment extends Fragment {
private final SignInModel mSignInModel;
public SignInWorkerFragment() {
mSignInModel = new SignInModel();
}
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
public SignInModel getSignInModel() {
return mSignInModel;
}
}
3) этот фрагмент запихиваем в фрагментменеджер и выставляем ему тег, чтобы потом можно было его выципить и получить ссылку на нашу модель
final SignInWorkerFragment retainedWorkerFragment =
(SignInWorkerFragment) getFragmentManager().findFragmentByTag(TAG_WORKER);
if (retainedWorkerFragment != null) {
mSignInModel = retainedWorkerFragment.getSignInModel();
} else {
final SignInWorkerFragment workerFragment = new SignInWorkerFragment();
getFragmentManager().beginTransaction()
.add(workerFragment, TAG_WORKER)
.commit();
mSignInModel = workerFragment.getSignInModel();
}
Весь проект
здесь
А рассказ про все это дело и не только, в курсе онлайн-школы от e-Legion:
ссылка на видео