Вот что я пытаюсь сделать: Когда мое приложение запускается, оно запускает асинхронный вызов, чтобы получить некоторые данные из WebService. Затем я открываю второе действие, которое отображает эти данные. упрощенный код: активность 1:Как безопасно получать доступ к асинхронному контенту?
OnPostExecute()
{
for (int i = 0; i < jsonArray.length(); ++i)
{ JSONObject jsonTrack = jsonTrackArray.getJSONObject(i);
JSONObject jsonObject = jsonArray.getJSONObject(i);
Content content = new Content(jsonObject.getString("content"),
MyApp.contentList.add(Content);
}
}
Вторая активность:
doSomething (contentList.get(0));
Как я могу убедиться, что, когда я пытаюсь получить доступ к contentList (0), что она уже принесла в AsynTask ?
не могли бы вы уточнить: как временно, пока я жду загрузки контента и повторного доступа к нему? –
Подумайте, как вы собираетесь заполнять contentList? Здесь вы находитесь во второй деятельности. Планируете ли вы перенести его из первого занятия или где-нибудь его хранить? Помещение списка в MyApp, вероятно, не подходит. Это требует от вас расширения приложения базового класса, которое не рекомендуется. –
Я уточнил свой вопрос, удалив эту часть, подумав о том, как временно, пока я получаю результат от webservice, был неправильным способом. Вместо этого у меня будет два привязки к службе, которые используют эти данные, а второе действие будет проверять, находятся ли данные здесь или нет при запуске, если это -> вызов функции, которая нуждается в этих данных. Если нет, вещательный прослушиватель вызовет функцию, когда данные будут извлечены. – Teovald