package com.example.webview; import android.os.Bundle; import android.view.View; import android.widget.Button; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private String msg;//聲明一個輸出值 private Button getmsg; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getmsg = (Button) findViewById(R.id.getmsg); getmsg.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { new newThread().start(); // 方法1:直接創建子線程並啟動 // new Thread(){ // @Override // public void run() { // //第一步:實例化URL對象 // String address="https://api.heclouds.com/devices/584758432/datastreams/dust_concentration"; //查詢最新數據流詳情 //// String address="https://api.heclouds.com/devices/584758432/datapoints?limit=10"; //查詢歷史數據 //// String address="https://api.heclouds.com/devices/584758432/datastreams/dust_concentration"; //查詢數據流詳情 // // try { // URL url =new URL(address); //實例化URL對象 // //實例化 HttpURLConnection對象 // HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // //設置鏈接屬性 // conn.setRequestMethod("GET");//設置請求方法 // conn.setRequestProperty("api-key","TeO0juJlw1uDTmDJRKD7cvzj=cM="); // conn.setRequestProperty("Host","api.heclouds.com"); // conn.setReadTimeout(5000);//設置超時時間 // if(conn.getResponseCode()==200){ //獲取狀態碼 200表示連接成功 // //獲取輸入流 // InputStream in= conn.getInputStream(); // //讀取輸入流 // byte[] b=new byte[1024*512]; //定義一個byte數組讀取輸入流 // ByteArrayOutputStream baos = new ByteArrayOutputStream(); //定義緩存流來保存輸入流的數據 // int len=0; // while((len=in.read(b))>-1){ //每次讀的len>-1 說明是是有數據的 // baos.write(b,0,len); //三個參數 輸入流byte數組 讀取起始位置 讀取終止位置 // } // String msg=baos.toString(); // Log.e("TAG",msg); // // } // } catch (java.io.IOException e) { // e.printStackTrace(); // } // } // }.start(); // //方法2:先創建子線程,然后啟動 //// private Thread newThread; //聲明一個子線程 // newThread = new Thread(new Runnable() { // @Override // public void run() { // //第一步:實例化URL對象 // String address="https://api.heclouds.com/devices/584758432/datastreams/dust_concentration"; //查詢最新數據流詳情 //// String address="https://api.heclouds.com/devices/584758432/datapoints?limit=10"; //查詢歷史數據 //// String address="https://api.heclouds.com/devices/584758432/datastreams/dust_concentration"; //查詢數據流詳情 // // try { // URL url =new URL(address); //實例化URL對象 // //實例化 HttpURLConnection對象 // HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // //設置鏈接屬性 // conn.setRequestMethod("GET");//設置請求方法 // conn.setRequestProperty("api-key","TeO0juJlw1uDTmDJRKD7cvzj=cM="); // conn.setRequestProperty("Host","api.heclouds.com"); // conn.setReadTimeout(5000);//設置超時時間 // if(conn.getResponseCode()==200){ //獲取狀態碼 200表示連接成功 // //獲取輸入流 // InputStream in= conn.getInputStream(); // //讀取輸入流 // byte[] b=new byte[1024*512]; //定義一個byte數組讀取輸入流 // ByteArrayOutputStream baos = new ByteArrayOutputStream(); //定義緩存流來保存輸入流的數據 // int len=0; // while((len=in.read(b))>-1){ //每次讀的len>-1 說明是是有數據的 // baos.write(b,0,len); //三個參數 輸入流byte數組 讀取起始位置 讀取終止位置 // } // String msg=baos.toString(); // Log.e("TAG",msg); // // } // } catch (java.io.IOException e) { // e.printStackTrace(); // } // } // }); // newThread.start(); } }); } // 方法3:創建外部線程類 // public class newThread extends Thread { // public void run(){ // //第一步:實例化URL對象 // String address="https://api.heclouds.com/devices/584758432/datastreams/dust_concentration"; //查詢最新數據流詳情 //// String address="https://api.heclouds.com/devices/584758432/datapoints?limit=10"; //查詢歷史數據 //// String address="https://api.heclouds.com/devices/584758432/datastreams/dust_concentration"; //查詢數據流詳情 // // try { // URL url =new URL(address); //實例化URL對象 // //實例化 HttpURLConnection對象 // HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // //設置鏈接屬性 // conn.setRequestMethod("GET");//設置請求方法 // conn.setRequestProperty("api-key","TeO0juJlw1uDTmDJRKD7cvzj=cM="); // conn.setRequestProperty("Host","api.heclouds.com"); // conn.setReadTimeout(5000);//設置超時時間 // if(conn.getResponseCode()==200){ //獲取狀態碼 200表示連接成功 // //獲取輸入流 // InputStream in= conn.getInputStream(); // //讀取輸入流 // byte[] b=new byte[1024*512]; //定義一個byte數組讀取輸入流 // ByteArrayOutputStream baos = new ByteArrayOutputStream(); //定義緩存流來保存輸入流的數據 // int len=0; // while((len=in.read(b))>-1){ //每次讀的len>-1 說明是是有數據的 // baos.write(b,0,len); //三個參數 輸入流byte數組 讀取起始位置 讀取終止位置 // } // String msg=baos.toString(); // Log.e("TAG",msg); // } // } catch (java.io.IOException e) { // e.printStackTrace(); // } // } // } }