活动视图模型在旋转时重新创建

时间:2018-05-30 14:42:07

标签: java android mvvm viewmodel android-lifecycle

当我旋转我的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实例。“

0 个答案:

没有答案