Почему этот список иногда нулевой, а иногда нет? - PullRequest
0 голосов
/ 17 мая 2019

У меня есть действие, которое показывает результаты предыдущего действия пользователю. Я сохраняю эти результаты в базе данных. В моем методе 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:

Например, вот список, заполняемый при отладке, теперь этот код будет работать:

enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...