2014-02-21 52 views
-1

如何啓動線程?或者在調用sendJson()函數時,線程會自動啓動?Android我可以知道如何啓動線程嗎?

還有一件事,我想開始一個線程,並在背景中每隔5分鐘執行一次sendJson()

public void sendJson(final JSONObject json) { 
     Thread t = new Thread() { 
      public void run() { 
       Log.d(null,"Sync Thread Start"); 
       Looper.prepare(); //For Preparing Message Pool for the child Thread 
       HttpClient client = new DefaultHttpClient(); 
       HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit 
       HttpResponse response; 

       try { 
        HttpPost httpPost = new HttpPost(global.Server + "/BusTicket/sync/sync.php"); 
       // Prepare JSON to send by setting the entity 
        httpPost.setEntity(new StringEntity(json.toString(), "UTF-8")); 

        // Set up the header types needed to properly transfer JSON 
        httpPost.setHeader("Content-Type", "application/json"); 
        httpPost.setHeader("Accept-Encoding", "application/json"); 
        httpPost.setHeader("Accept-Language", "en-US"); 
        response = client.execute(httpPost); 
        StatusLine statusLine = response.getStatusLine(); 
        String responseString = null; 

        if(statusLine.getStatusCode() == HttpStatus.SC_OK){ 
         ByteArrayOutputStream out = new ByteArrayOutputStream(); 
         response.getEntity().writeTo(out); 
         out.close(); 
         responseString = out.toString(); 
         Log.d(null,"responseString = "+ responseString ); 
        } 
        /*Checking response */ 
        if(response!=null){ 
         InputStream in = response.getEntity().getContent(); //Get the data in the entity 
         Log.d(null,"Sync Reponse= "+ convertStreamToString(in)); 
         Log.d(null,"Sync Reponse= "+ in.toString()); 
        } 

       } catch(Exception e) { 
        e.printStackTrace(); 
       } 

       Looper.loop(); //Loop in the message queue 
      } 
     }; 
    } 

回答

4

這僅僅是一個宣言,啓動它,使用:

t.start(); 

更多信息here。要知道如何定期運行Thread,請參見this

相關問題