2012-12-14 54 views
0

我知道發生了誤差,因爲我嘗試把主線程上的網絡電話,所以我需要使用一個處理器或的AsyncTask通過處理器/的AsyncTask或類似的運行網絡任務

但是我不似乎能夠得到它的權利

這是代碼即時試圖去上班

try { 
       // Create a URL for the desired page 
       URL url = new URL("http://darkliteempire.gaming.multiplay.co.uk/testdownload.txt"); 


       // Read all the text returned by the server 
       BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
       String str; 
       while ((str = in.readLine()) != null) { 
        // str is one line of text; readLine() strips the newline character(s) 

        eventText.setText(str); 
        eventText.setText(in.readLine()); 
       } 
       in.close(); 
      } catch (MalformedURLException e) { 
       Toast.makeText(getBaseContext(), "MalformedURLException", Toast.LENGTH_LONG).show(); 
      } catch (IOException e) { 
       Toast.makeText(getBaseContext(), "IOException", Toast.LENGTH_LONG).show(); 
      } 

,我想叫它單擊此按鈕時

public void onClick(View v) { 

if (v.getId() == R.id.update) { 
} 
} 

是任何人能告訴我什麼是我應該換的第一位和如何調用它從的onClick

回答

2

喜歡的東西

public class TalkToServer extends AsyncTask<String, String, String> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
    } 

    @Override 
    protected void onProgressUpdate(String... values) { 
     super.onProgressUpdate(values); 

    } 

    @Override 
    protected String doInBackground(String... params) { 
    //do your work here 
     return something; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
      // do something with data here-display it or send to mainactivity 
} 

是否所有的繁重工作中doInBackground(),你可以在其他3種方法更新UI。

Here上的AsyncTask

文檔
0

創建並在onclick方法實例化的AsyncTask。在doOnBackground方法中調用url調用(以及等待),然後根據onPostExecute中的響應(發生在主線程中)執行任何您想要的操作。

相關問題