0
private void subscribeToModel() {
final MyViewModel model = ViewModelProviders.of(this)
.get(MyViewModel.class);
// Update the list when the data changes
model.getItems().observe(this, new Observer<List<Item>>() {
@Override
public void onChanged(@Nullable List<Item> items) {
// Do something useful
}
});
}
위 코드는 'AppCompatActivity'또는 'FragmentActivity'에서 잘 작동합니다. 그러나 다른 유형의 활동 (예 : 나를 위해 : GvrActivity)에서는 작동하지 않습니다. ViewModelProviders.of()에서 'FragmentActivity'가 필요합니다.FragmentActivity가 아닌 경우 ViewModelProviders.of()를 사용하여 ViewModel을 가져 오는 방법은 무엇입니까?
다른 방법으로 DB를 관찰 할 수 있습니까?
DB는 ROOM을 사용하고 있습니다.
:
여기에 전체 솔루션입니다. @ Query 메소드에서 반응 형 (예 :'LiveData','Flowable')을 반환하면 변경 사항을 볼 수 있습니다. 그러나 다른 접근법 (예 : onRetainNonConfigurationInstance(), 보유 된 프래그먼트)을 통해 구성 변경 사항을 처리해야합니다. 결국, 모든 Architecture Components의 'VieModel' 시스템은 유지 된 조각을 사용합니다. – CommonsWare