Когда я вращаю телефонный конструктор моих вызовов MainViewModel все время!
MainActivity:
@Override
public MainViewModel onCreateViewModel() {
return ViewModelProviders.of(this, viewModelFactory).get(MainViewModel.class);
}
BaseActivity:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
performInjection();
performDataBinding();
}
private void performDataBinding() {
viewDataBinding = DataBindingUtil.setContentView(this, setLayoutId());
this.viewModel = viewModel == null ? onCreateViewModel() : viewModel;
viewDataBinding.setVariable(setBindingVariable(), viewModel);
viewDataBinding.executePendingBindings();
}
Конструктор MainViewModel:
@Inject
MainViewModel(ErrorHandler errorHandler, Router router, TradeInfoInteractor getTradeInfoUseCase) {
super(errorHandler);
Log.d(TAG, "constructor");
this.router = router;
this.getTradeInfoUseCase = getTradeInfoUseCase;
init();
}
Вход в систему для отдыха:
05-30 20: 48: 45.046 21513-21513 / merseyside.com.cripto D / MainViewModel: конструктор
05-30 20:48: 49.566 21513-21513 / merseyside.com.cripto D / MainViewModel: конструктор
Что с этим не так?В документации сказано:
"// Создание ViewModel в первый раз, когда система вызывает метод onCreate () действия.
// Повторно созданные действия получают тот же экземпляр MyViewModel, созданныйпервое занятие. "