程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> android-這兩段代碼為什麼前者可執行,後者不行,若後者不放在run方法裡是可執行的

android-這兩段代碼為什麼前者可執行,後者不行,若後者不放在run方法裡是可執行的

編輯:編程解疑
這兩段代碼為什麼前者可執行,後者不行,若後者不放在run方法裡是可執行的

前者:
// 創建子線程
new Thread() {
public void run() {
try {
// 獲取源碼路徑
String path = et_enter.getText().toString().trim();
// 將路徑轉換為URL
URL url = new URL(path);
// 利用URL對象得到httpURLconnection對象 用於發送或接收數據
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
// 發送get請求,以得到網頁源代碼
conn.setRequestMethod("GET");// 必須大寫
// 設置請求超時時間
conn.setConnectTimeout(5000);
// 獲取服務器返回的狀態碼
int code = conn.getResponseCode();
// 判斷是否請求成功
if (code == 200) {
InputStream in = conn.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int len = -1;
byte[] buffer = new byte[1024];
while ((len = in.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
String content = new String(baos.toByteArray());

                    // 創建message對象用於存取content
                    Message msg = new Message();
                    msg.obj = content;

                    // 調用sendMessage方法發送消息
                    hander.sendMessage(msg);

                    // tv_display.setText(content);
                }

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

後者:
// 創建子線程
new Thread(){
public void run() {

            try {
                // 獲取源碼路徑
                String path = et_enter.getText().toString().trim();
                // 將路徑轉換為URL
                URL url = new URL(path);
                // 利用URL對象得到httpURLconnection對象 用於發送或接收數據
                HttpURLConnection conn = (HttpURLConnection) url
                        .openConnection();
                // 發送get請求,以得到網頁源代碼
                conn.setRequestMethod("GET");// 必須大寫
                // 設置請求超時時間
                conn.setConnectTimeout(5000);
                // 獲取服務器返回的狀態碼
                int code = conn.getResponseCode();
                // 判斷是否請求成功
                if (code == 200) {
                    InputStream in = conn.getInputStream();

                    //通過BitmapFactory獲取bitmap
                    Bitmap bitmap = BitmapFactory.decodeStream(in);

                    // 創建message對象用於存取content
                    Message msg = Message.obtain();
                    msg.obj = bitmap;

                    // 調用sendMessage方法發送消息
                    hander.sendMessage(msg);

                }

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

最佳回答:


http://www.cnblogs.com/yourancao520/archive/2012/06/25/2561367.html這裡有篇文章和你類似,可以看看,他的是將
Bitmap bitmap = BitmapFactory.decodeStream(in)改成了Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved