您当前的位置: 首页 >  .net

ZhangJiQun&MXP

暂无认证

  • 4浏览

    0关注

    1187博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

android.os.NetworkOnMainThreadException

ZhangJiQun&MXP 发布时间:2019-05-22 16:40:07 ,浏览量:4

网络请求要放在子线程中操作,使用handle进行消息传递。

第一种方法:简单暴力,强制使用,代码修改简单(但是非常不推荐) 在MainActivity文件的setContentView(R.layout.activity_main)下面加上如下代码

if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}

第二种方法就是我使用的方法也是我要推荐的方法,将请求网络资源的代码使用Thread去操作。在Runnable中做HTTP请求,不用阻塞UI线程。

 

Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg){
        Bundle data = msg.getData();
        //从data中拿出存的数据
        String val = data.getString("value");
        //将数据进行显示到界面等操作
    }
};
Runnable runnable = new Runnable(){
    @Override
    public void run(){
        //进行访问网络操作
        Message msg = Message.obtain();
        Bundle data = new Bundle();
        data.putString("value", "存放数据");
        msg.setData(data);
        handler.sendMessage(msg);
    }
};

 

关注
打赏
1665659684
查看更多评论
立即登录/注册

微信扫码登录

0.1783s