如何更新ViewModel LifeCycle和recyclerview

时间:2018-01-18 16:43:04

标签: java android android-recyclerview android-lifecycle

我的ViewModel类:

public class MyViewModel extends AndroidViewModel { ...

我是从Activity:

初始化的
private void initializeViewModel() {
viewModel = ViewModelProviders
        .of(this, new ViewModelFactory(this.getApplication(), argsSelect))
        .get(MyViewModel.class);

viewModel.getLogsList().observe(this, new Observer<List<DebugMessage>>() {
    @Override
    public void onChanged(@Nullable List<DebugMessage> debugMessages) {
        logAdapter.addItems(debugMessages);
    }
});

}

我的论点( argsSelect )会实时更改。我如何使用基于当前参数的新SELECT更新ViewModel和 RecyclerView

1 个答案:

答案 0 :(得分:0)

如果您正在使用Room加载内部数据,则必须返回一个LiveData。

@Query("SELECT * FROM user")
fun getAll(): LiveData<MutableList<User>>

数据库中的每一次更改都会调用观察者,因此您不必担心。