Android: запустить функцию после создания Activity - PullRequest
1 голос
/ 01 марта 2012

В настоящее время мое приложение начинается с меню.При нажатии на пункт меню запускается действие, которое захватывает контент из онлайн-API.

Проблема, с которой я сталкиваюсь, заключается в том, что после нажатия на пункт меню приложение ожидает завершения запроса http и ответадо того, как отобразится действие.

Мой вопрос: как я могу мгновенно отобразить действие с макетом и статическим представлением.Затем, когда действие загружено, я начинаю получать данные из API?

Ответы [ 2 ]

3 голосов
/ 01 марта 2012

Зачем бежать, если вы можете работать одновременно !!

Используйте AsyncTask в вашем onCreate() / onResume() методе.

public void onCreate(Bundle b) {
    super.onCreate(b);
    setContentView(...);

    AsyncTask task = new MyTask();
    task.execute(/* optional params */);
}

В вашей реализации MyTask поместите ваш долгосрочный код (данные, полученные из запроса http) в метод doInBackground(). Как только метод doInBackground() вернется, вы можете обновить View в onPostExecute().

Кроме того, взгляните на Безболезненная нить , так как там много полезной информации о нити андроида.

2 голосов
/ 01 марта 2012

Вы можете использовать AsyncTask во время метода onCreate для получения результатов и асинхронного обновления своей активности.Кроме того, я думаю, что вы можете использовать отдельный поток для выполнения той же функциональности.Довольно распространенный вариант использования. Вот соответствующие документы по Android .

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