Итак, я написал метод, чтобы проверить, добавлен ли уже элемент в базу данных Room:
if(!CheckifExisits(item)){
itemViewModel.addItem(item);
}else{
Log.e(TAG, "getPrice: Item Already Exists");
context.runOnUiThread(() -> Toast.makeText(context, "Item is already added", Toast.LENGTH_LONG).show());
}
private boolean CheckifExisits(Item itemOutSide){
Exists = false;
itemViewModel.getAllItem().observeForever(items -> {
if (items != null) {
for (Item item: items){
if(item.getUrl().equals(itemOutSide.getUrl())&&item.getName().equals(itemOutSide.getName())){
Exists = true;
break;
}
}
}
});
return Exists;
}
Теперь мы добавляем элемент в первый раз, когда ничего не происходит, элемент добавляется в базу данных нормально, после того как яснова нажмите кнопку добавления, метод работает нормально, и я получаю сообщение о том, что элемент уже находится в базе данных, но когда я закрываю приложение и снова открываю его, он не только не может обнаружить, что он уже находится в базе данных, но и повторно добавляеткак будто это новый элемент, хотя элемент уже находится в базе данных!
Как это так?Как я могу это исправить?