Как мы можем найти на Google
сайте, там написано:
Если действие воссоздается, оно получает тот же экземпляр MyViewModel, который был создан первым действием. Когда действие владельца завершено, платформа вызывает метод onCleared () объектов ViewModel, чтобы очистить ресурсы.
Итак, сейчас я не хочу эту функцию. Я хочу воссоздавать ViewModel
каждый раз, когда создается Fragment
. Потому что у меня есть ссылка на объект, используя идентификатор.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SaleViewModel viewModel = ViewModelProviders.of(this).get(SaleViewModel.class);
viewModel.getSaleLiveData().observe(this, new Observer<List<SaleEntity>>() {
@Override
public void onChanged(@Nullable List<SaleEntity> saleEntities) {
initAll();
}
});
}
Внутри SaleViewModel
, у меня есть ссылка на Store
(которая установлена ранее):
private static FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
private static DatabaseReference HOT_STOCK_REF = FirebaseDatabase.getInstance().getReference("users").child(user.getUid()).child(FirebaseStoreRef.getInstance().getStoreEntity().getId()).child("income");
private FirebaseQueryLiveData liveData = new FirebaseQueryLiveData(HOT_STOCK_REF);
С учетом вышесказанного мне нужно воссоздавать ViewModel
каждый раз из-за ссылки, которую мне нужно обновить (в противном случае я получу первый набор ссылок).
Заранее спасибо.