У меня есть действие, которое показывает результаты предыдущего действия пользователю. Я сохраняю эти результаты в базе данных. В моем методе onCreate я создаю ссылку на мою ViewModel и заполняю список.
mAtcViewModel = new AtcViewModel(getApplication());
atcUserStatsList = mAtcViewModel.getAllUsersList();
После этого назначения я вызываю метод сохранения в базе данных:
private void saveToDB(String playerName) {
mUser = playerName;
getAtcUser getAtcUser = new getAtcUser(playerName, this);
getAtcUser.delegate = this;
getAtcUser.execute();
}
Когда я получаю результат от onPostExecute
, этот метод вызывается:
@Override
public void processFinish(AtcUserStats atc_user) {
callOnChanged(atc_user);
}
Затем вызывается метод, в котором я могу просмотреть ранее сохраненные результаты пользователей и скорректировать их с учетом новых результатов, но в этом блоке кода возникает проблема только иногда, говоря, что atcUserStatsList
равен нулю:
try {
for (int i = 0; i < atcUserStatsList.size(); i++) {
if (atcUserStatsList.get(i).getUserName().equals(mUser)) {
mAtcViewModel.updateAtcPlayerStats(mUser, finalDartsHit, finalGamesWon, finalGamesPlayed, finalSinglesPlayed, finalDoublesPlayed, finalTreblesPlayed, finalDartsThrown,
finalSinglesDartsThrown, finalDoublesDartsThrown, finalTreblesDartsThrown, finalSinglesDartsHit, finalDoublesDartsHit, finalTreblesDartsHit, finalSecondPlace, finalThirdPlace);
}
}
} catch (Execption e) {
e.printStackTrace();
Log.d("atcUserStatsList", "Unable to save to database");
getMessage("Unable to save to database");
}
Когда я отлаживаю, список заполняется большую часть времени, а затем, когда я запускаю приложение без отладки, иногда оно пустое / пустое, и появляется сообщение «Снэкбар», и ничего не сохраняется, тогда как в других случаях оно не появляется, а результаты сохраняются. ? С чего бы это?
Это как-то связано с жизненным циклом?
EDIT:
Например, вот список, заполняемый при отладке, теперь этот код будет работать:

И по какой-то причине при отладке (?) Может быть трудно получить этот список, а не Null.