Как я могу легко получить счетчик размера базы данных, чтобы я мог затем выполнить соответствующие действия в зависимости от того, пуста ли БД или нет?
У меня есть приложение БД, View Model, Repository, Dao, и все остальные части, и мои объекты вставляются ... Но я не могу назвать onCreate()
размер списка в БД.Когда я пытаюсь получить mAppDatabase.vehicleDao().getAll().getValue().size()
или mVehicleViewModel.getAll().getValue().size()
, я получаю исключения нулевого указателя.
Однако я знаю, что мои объекты вставляются, потому что когда я запускаю наблюдаемое, я могу регистрировать их информацию ... ноЯ не могу получить счет в главном потоке / в onCreate.Помогите!Пример кода ниже:
protected void onCreate(Bundle savedInstanceState) {
...
mAppDatabase = AppDatabase.getInstance(MyActivity.this);
Log.d("LISTSIZEAPP", String.valueOf(mAppDatabase.myDao().getAll().getValue().size()));
ObserveItems();
ИЛИ
protected void onCreate(Bundle savedInstanceState) {
...
mViewModel = ViewModelProviders.of(this).get(MyViewModel.class);
Log.d("LISTSIZEVM", String.valueOf(mViewModel.getAll().getValue().size()));
ObserveItems();
^ Исключение нулевого указателя для обоих (Попытка вызвать метод интерфейса 'java.lang.Object [] java.util.List.toArray () 'для пустой ссылки на объект) ...
однако:
private void ObserveItems() {
mViewModel.getAll().observe(this, new Observer<List<Foo>>() {
@Override
public void onChanged(@Nullable final List<Foo> foos) {
mFoos= foos;
for (Vehicle v: mFoos) {
Log.d("ROOM INFO - FOOS", v.getFooTitle());
}
}
});
}
Я могу регистрировать всю информацию, которую хочу.Таким образом, элементы ЯВНО вставлены.Что дает?Чего мне не хватает?Спасибо.