Я хотел бы сказать спасибо всем, кто помог мне, и особую благодарность @Daniel Carreto.
Я применил шаги, и они хорошо работают, но я добавил логический метод (если) , где (если Sqlite пуст) вызывает данные Firebase и сохраняет их в SQLite, затем прекращает вызов valueEventListener (если нет) получить запрос SQLite.class .
это работает хорошо, но когда я заканчиваю упражнение и открываю его снова, процесс начинается снова
вот код после обновления
@Override
protected void onStart() {
super.onStart();
if (FB2sqLite == null) {
ArrayList<HashMap<String, String>> myList = FB2sqLite.getProducts();
if (myList.size() != 0) {
ListAdapter adapter = new SimpleAdapter(FireBase_Prices.this, myList, R.layout.model,
new String[]{item_Code, ItemDesc},
new int[]{R.id.ItemCodeView, R.id.descTxt});
listView.setAdapter(adapter);
}
} else {
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
pricesArrayList.clear();
for (DataSnapshot PricesListDataSnapshot : dataSnapshot.getChildren()) {
PricesList pricesList = PricesListDataSnapshot.getValue(PricesList.class);
pricesArrayList.add(pricesList);
FB2sqLite.insert(pricesList);
FB2sqLite.close();
}
ArrayList<HashMap<String, String>> myList = FB2sqLite.getProducts();
if (myList.size() != 0) {
ListAdapter adapter = new SimpleAdapter(FireBase_Prices.this, myList, R.layout.model,
new String[]{item_Code, ItemDesc},
new int[]{R.id.ItemCodeView, R.id.descTxt});
listView.setAdapter(adapter);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
как я могу использовать removeEventListener и где находится позиция этого метода?