很早就知道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方法中,好笨。

相关文章:

  • 2021-07-28
  • 2021-10-23
  • 2021-10-27
  • 2021-12-26
  • 2021-10-05
猜你喜欢
  • 2021-06-26
  • 2022-12-23
  • 2021-05-07
  • 2021-08-12
  • 2021-06-28
相关资源
相似解决方案