hyt_ao 2016-02-17 14:18 采纳率: 41.2%
浏览 1390
已采纳

这两段代码为什么前者可执行,后者不行,若后者不放在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();
            }
        };
    };
  • 写回答

3条回答 默认 最新

  • 小菜陈 2016-02-18 01:19
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作