android.os.NetworkOnMainThreadException解决

很早就知道Android4.0以后,要把耗时的网络操作放在多线程中,处理方法有:

1)

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);
}

2)大多数人还是比较喜欢这种方式(new thread + handler)

  onCreate(){

   new Thread(runnable).start();

   }

  Runnable runnable = new Runnable(){

   //重写run方法,把网络耗时操作移步到此,把网络获取的data放在Message

   然后通过handler.sendMessage(msg)

 }

   Handler handler = new Handler(){

    //重写handleMessage方法,把网络数据更新到UI上即可

   }

今天傻傻的按照第二种方法做,结果,还是抱同样的异常,连续换了N种写法,最后,惭愧,我竟然把网络操作放在handler方法中,好笨。

原文地址:https://www.cnblogs.com/jiuzhexingfu/p/3465725.html