Обновление информации без перезагрузки приложения

Activity Lifecycle, Saving Activity State, Managing Tasks, Intent, Intent Filter
Ответить
September
Сообщения: 5
Зарегистрирован: 07 фев 2014, 19:02

Обновление информации без перезагрузки приложения

Сообщение September » 17 апр 2014, 14:43

Собственно не найдя способа решения проблемы решил создать топик тут.
Проблема такова:
Есть SplashScreen у которого есть AsyncTask который в фоне парсит JSON файл по заданному URL, по завершению парсинга отрабатывает onPostExecute и сплэшскри финиширует при этом переходя на вторую активити где находится лист с данными которые спарсились. Есть кнопка настроек при нажатии на которую открывается активность с текстовым полем в который забивается URL до JSON (тобиш пользователь может указать свой JSON который будет парсится) Собственно тут проблема когда пользователь применяет данные изменения (url) нужно заново спарсить данные не перезапуская приложение. Пробовал выносить AsyncTask в отдельный класс, при этом сплэш скрин отказался выполнять .execute() переходя с разу на 2е активити без данных. Дублировать код не хочу и вот собственно интересуюсь мнения гуру данного форума что можно предпринять и как же мне обновлять данные, интересует даже не конкретное решение проблемы а совет в какую сторону двигаться и мб что почитать.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Обновление информации без перезагрузки приложения

Сообщение altwin » 17 апр 2014, 15:02

я так и не понял в чем проблема. Когда вводится url запускается background поток выполняющий загрузку и возвращающий результат в UI - все.
Изображение

September
Сообщения: 5
Зарегистрирован: 07 фев 2014, 19:02

Re: Обновление информации без перезагрузки приложения

Сообщение September » 18 апр 2014, 10:17

Проблема в запуске потока без дублирования еще одного AsyncTask, выносил его в отдельный класс ничего не получилось, программа игнорирует execute, в общем то уже сам разобрался с отдельным классом, нашел косяк.Но при этом возник еще один вопрос как узнать завершил ли поток свою работу?Пробовал так

getResultMap.execute(url);
do{
if(getResultMap.getStatus().toString().equals("FINISHED"))
{
Intent intent = new Intent(SplashScreen.this,MainActivity.class);
startActivity(intent);
finish();
break;
}
while(true);
Приложение виснет намертво)
PS Эту проблему тоже решил но теперь активность просто черного цвета пока загружаются данные оО видимо способ которым делаю я занимает UI поток

Ответить