【发布时间】:2018-09-29 08:19:28
【问题描述】:
我有 1 个Activity,仅 显示并从RecyclerView 删除 Notes。
我还有另一个Activity,它仅 添加和更新新项目。
目前他们都使用相同的ViewModel 类:
public class NoteViewModel extends AndroidViewModel {
private NoteRepository repository;
private LiveData<List<Note>> allNotes;
public NoteViewModel(@NonNull Application application) {
super(application);
repository = new NoteRepository(application);
allNotes = repository.getAllNotes();
}
public void insert(Note note) {
repository.insert(note);
}
public void update(Note note) {
repository.update(note);
}
public void delete(Note note) {
repository.delete(note);
}
public void deleteAllNotes() {
repository.deleteAllNotes();
}
public LiveData<List<Note>> getAllNotes() {
return allNotes;
}
}
我是否应该创建 2 个单独的 ViewModels,每个 Activity 一个?
【问题讨论】:
-
请注意,在使用单个 ViewModel 类时,两个 Activity 不会共享同一个实例(因为 ViewModel 与 Activity 生命周期相关联)。这可能会导致混淆,具体取决于您的 ViewModel 的实现
-
你也可以发图片吗?
标签: android viewmodel android-architecture-components android-viewmodel android-mvvm