Android-асинхронные звонки - PullRequest
1 голос
/ 15 марта 2010

Я делаю асинхронный вызов из класса в другой.

Вот мой фактический код:

public class HttpRequestHelper extends AsyncTask
{

  @Override
  protected Object doInBackground(Object... params) 
  {
   try 
   {
      // Create a URL for the desired page
      URL url = new URL("http://www.google.com");
      // Read all the text returned by the server
      BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
      String str;
      while ((str = in.readLine()) != null) 
      {
      }
      in.close();
    } 
    catch (MalformedURLException e) 
    {

    }    
    return null;
   }
   protected void onPostExecute(Long result)
   {
        String hello="hello world";   
   }
}

Я использую класс выше из другого класса, используя:

HttpRequestHelper helper=new HttpRequestHelper();
helper.execute("whatever");

Но после выполнения я не знаю, когда выполнение будет завершено, как я могу включить функцию обратного вызова асинхронной операции?

Заранее спасибо.

С наилучшими пожеланиями. Josema.

Ответы [ 3 ]

1 голос
/ 15 марта 2010

Вам также следует взглянуть на Обработчики ; документация всегда ссылается на их использование в отношении различных потоков, передающих сообщения друг другу, поэтому, если ваш сервер и клиентские классы работают в разных потоках, это должно быть уместно Вот простое руководство по использованию обработчиков в контексте наличия потока загрузки и потока диалога, чтобы вы могли адаптировать его к вашим потребностям. Требуемый код скрыт под «Примером ProgressDialog со вторым потоком» примерно на 2/3 вниз по странице.

0 голосов
/ 21 апреля 2014

Вы можете сделать что-то вроде этого:

HttpRequestHelper helper = new HttpRequestHelper(){
   protected void onPostExecute(Long result)
   {
        super.onPostExecute(result);
        //do what ever you want to do


   }
};

helper.execute("whatever");
0 голосов
/ 15 марта 2010

Похоже, вы должны использовать BroadcastReceiver , чтобы получить sendBroadcast ()

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