Blackberry Асинхронные HTTP-запросы - Как? - PullRequest
1 голос
/ 20 апреля 2010

Приложение, над которым я работаю, имеет автономную базу данных. Единственный раз, когда мне нужен HTTP-запрос, это когда пользователь впервые загружает приложение.

Я делаю это, вызывая класс, который проверяет, существует ли локальная БД, и, если нет, создаю ее с помощью следующего запроса:

HttpRequest data = new HttpRequest("http://www.somedomain.com/xml", "GET", this); data.start();

Этот xml возвращает список содержимого, во всех из которых есть изображения, которые я хочу получить ПОСЛЕ того, как исходный запрос завершен и сохранен.

Так что-то вроде этого не будет работать:

HttpRequest data = new HttpRequest("http://www.somedomain.com/xml", "GET", this); data.start();
HttpRequest images = new HttpRequest("http://www.somedomain.com/xmlImages", "GET", this); images.start();

Так как он не будет обрабатывать это как асинхронный запрос. Я не нашел много информации о добавлении обратных вызовов в httpRequest или о любом другом методе, который я мог бы использовать, чтобы убедиться, что операция 2 не выполняется, пока операция 1 не будет завершена.

Любая помощь будет оценена. Спасибо

Ответы [ 2 ]

1 голос
/ 23 апреля 2010

Спасибо. Ссылка была расплывчатой ​​и не совсем то, что я искал, но она помогла мне пойти по пути, который работал. Не уверен, насколько это эффективно, но это основной результат:

    HttpRequest data = new HttpRequest("http://www.somedomain.com/xml", "GET", this); 
    data.start();
    HttpRequest images = new HttpRequest("http://www.somedomain.com/xmlImages", "GET", this); 
    images.start();
    try {
        data.join();
        images.join();
    } catch (InterruptedException e) {

    }

также, методы в классе базы данных, в которых хранятся результаты запроса http, синхронизируются для всех, у кого может быть эта проблема.

1 голос
/ 20 апреля 2010

В J2ME нет встроенного асинхронного HTTP-запроса. Вы просто делаете это вручную с потоками. В частности, посмотрите на пример в конце ссылки, которая выполняет асинхронный обмен сообщениями.

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