2016-09-28 3 views
-3

У меня есть эта большая проблема с программированием все время. Мой сценарий следующий:Вызов метода при изменении переменной

У меня есть моя загрузка. Его запуск начинается и должен отображать какое-то произведение, когда он загружает некоторые данные из Интернета.

Приложение получает эти данные с помощью отдельного класса, который загружает некоторые данные json в asyncTask. Теперь я хочу, чтобы моя информация по загрузке была проинформирована о завершении загрузки и разбора. Как мне это удалось.

Я уже прочитал об интерфейсе changeListener, но не смог преобразовать его в свою ситуацию.

Конструкция такова: активность: InformationLoadActivity.class StandardClasses: GetWeatherJsonData и GetMyDatabaseJsonData и расширяет мой GetRawJsonData для обработки загрузки моего содержания.

InformationLoadActivity:

@Override 
protected void onStart() { 
    super.onStart(); 

    GetWeatherJsonData weatherData = new GetWeatherJsonData("http://api.openweathermap.org"); 
    weatherData.execute(); 
} 

Внутри и после окончания разбора информации о погоде я начинаю GetMyDatabaseJsonData. И внутри этого класса я хочу сообщить моему InformationLoadActivity.class, что загрузка и синтаксический анализ завершены, и он может перейти в другую деятельность в этом случае, мой MainActivity, который отображает этот загруженный контент.

ответ

0

В postExecute вашего AsyncTask кода записи осуществить нужное действие т.е. перейдите на MainActivity

+0

Я этого не понимаю. У меня есть метод openMainActivity внутри моей InformationLoadActivity, где я делаю это «startActivity (намерение)», но как я могу это назвать внутри моей GetMyDatabaseJsonData. – kuemme01

+0

Чтобы создать намерение, мне нужен экземпляр моего InformationLoadController или нет? с этим намерением я могу изменить на свой MainActivity – kuemme01

+0

Создайте конструктор для вашего класса GetMyDatabaseJsonData, который принимает Acticity как аргумент. Поэтому, когда вы начнете этот экземпляр класса, вам нужно будет указать свой контекст активности. Теперь в onPostExecute вы можете написать свою логику чтобы перейти к следующему действию. – Nishith

0

Почему вы не просто реализовать скороговорку наблюдателя?

В вашем случае GetWeatherJsonData будет объектом, и действия будут реализовывать интерфейс Observer.

https://sourcemaking.com/design_patterns/observer/java/1

Смежные вопросы