2013-06-27 39 views
2

我是新來的線程,而不是Java中最先進的,但從我的理解,以下應該正確運行,但它does not。我已經嘗試過調整內容並在線程上閱讀,但無濟於事。我嘗試搜索,但我沒有得到任何明確的答案。Java線程沒有啓動,什麼是錯誤的,我該如何解決它?

代碼:

public void getValue(final EditText input1) // 0 all three // 1 ask // 2 buy 
{ 
    final Handler handler = new Handler(); 
    final Thread thread = new Thread() { 
     public void run() { 
      try { 
       HttpClient httpClient = new DefaultHttpClient(); 
       HttpContext localContext = new BasicHttpContext(); 
       HttpGet httpGet = new HttpGet("http://finance.yahoo.com/d/quotes.csv?s="+input1.getText().toString()+"&f=abl1"); 
       HttpResponse response = null; 
       try { 
        response = httpClient.execute(httpGet, localContext); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       final HttpResponse finalResponse = response; 
       handler.post(new Runnable() { 
        @Override 
        public void run() { 
         try { 
          textViews[2].setText("Last:Err2"); 
          BufferedReader reader = new BufferedReader(
            new InputStreamReader(
              finalResponse.getEntity().getContent() 
            )); 
          updateText(reader.readLine()); // pass data out 
         } catch (IOException e) { 
          e.printStackTrace(); 
         } 
        } 
       }); 
      } catch (final Exception e) { 
       e.printStackTrace(); 
     } 
    } 

}; 
    thread.start(); 
} 
+3

你叫過getValue嗎? – Blackbelt

回答

3
  1. 你叫的getValue?
  2. 爲什麼你說它沒有運行?它看起來應該是。
  3. 在Android中,這應該由AsyncTask完成。 AsyncTask是一個類,它會自動爲你啓動一個線程,然後在任務完成時在UI線程上運行第二段代碼。這擺脫了笨拙的Handler構造。
+0

是的,我調用了它,我進行了各種檢查以查看代碼到達的位置,現在我將查看int AsyncTask。 – user2527166

相關問題