2012-03-27 2 views
0

Я новичок в async-задаче. Мне нужно использовать httppost в моем приложении. Пожалуйста, помогите мне манипулировать следующим кодом, используя задачу async. Пожалуйста, дайте мне структурированные кодовогоКак использовать задачу async для управления httppost android

   HttpClient httpClient = new DefaultHttpClient(); 
       HttpPost httpPost = new HttpPost("url here"); 
       httpPost.addHeader("Content-Type", "application/xml"); 
       try { 
        HttpResponse response = httpClient.execute(httpPost); 
        BufferedReader reader = new BufferedReader(
          new InputStreamReader(response.getEntity() 
            .getContent(), "UTF-8")); 
        StringBuffer responseString = new StringBuffer(""); 
        String line; 
        while ((line = reader.readLine()) != null) { 
         responseString.append(line); 
        } 
        System.out.println("respose QQQQQQQQQQQ"); 
        System.out.println("11response " 
          + responseString.toString()); 

       } catch (ClientProtocolException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

ответ

0

см. Это http://developer.android.com/reference/android/os/AsyncTask.html. В методе doInBackground() напишите свой код для управления HTTP-сообщением. В интерфейсе preexecute() обрабатывайте пользовательский интерфейс перед запуском потока и в onPostExecute() обрабатываете интерфейс после завершения потока. Не записывайте UI-код в doinBackground().

вызов AsynTask нить следующим

ServerCalling task = new ServerCalling(); 
      task.execute(new String[] { "Tickets" }); 

SerivceCalling класс:

public class ServerCalling extends AsyncTask<String, Void, Void> { 
       @Override 
     protected void onPreExecute() { 

     } 

/** 
     * On progress update. 
     * 
     * @param unused 
     *   the unused 
     */ 
     protected void onProgressUpdate(Void unused) { 
      L 

og.d("HIIIIIIIIIIIIIIIIIIIIIIII","ONPROGRESS UPDATE IS CALLED ........................"); 
     } 

      @Override 
     protected void onPostExecute(Void unused) { 
} 

    @Override 
     protected Void doInBackground(String... params) { 
     HttpClient httpClient = new DefaultHttpClient(); 
       HttpPost httpPost = new HttpPost("url here"); 
       httpPost.addHeader("Content-Type", "application/xml"); 
       try { 
        HttpResponse response = httpClient.execute(httpPost); 
        BufferedReader reader = new BufferedReader(
          new InputStreamReader(response.getEntity() 
            .getContent(), "UTF-8")); 
        StringBuffer responseString = new StringBuffer(""); 
        String line; 
        while ((line = reader.readLine()) != null) { 
         responseString.append(line); 
        } 
        System.out.println("respose QQQQQQQQQQQ"); 
        System.out.println("11response " 
          + responseString.toString()); 

       } catch (ClientProtocolException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

} 
+0

поблагодарить вас Venkata Кришна – vinuonline

0

использовать этот код

private class VerticalChannelTask extends AsyncTask<String, Void, ArrayList<MyChannelItem>> {  

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     show(); 
    } 

    @Override 
    protected ArrayList<MyChannelItem> doInBackground(String...params) { 
    /// place your code here i.e Http code.. 

     return m_orders; 
    }  
    protected void onPostExecute(ArrayList<MyChannelItem> result) { 

     hide();   

    } 
} 

здесь я использую входной параметр строка и возврат значение из AsyncTask был ArrayList. изменение в зависимости от вашего требования

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