Android “NetworkOnMainThreadException”出错原因及解决办法

原因: 不允许在主线程中通讯

方法1:当然也可以,这样去处理:

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
        .detectDiskReads()
        .detectDiskWrites()
        .detectNetwork()   // or .detectAll() for all detectable problems
        .penaltyLog()
        .build());
  StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
          .detectLeakedSqlLiteObjects()
          .detectLeakedClosableObjects()
          .penaltyLog()
          .penaltyDeath()
          .build());

Android “NetworkOnMainThreadException”出错原因及解决办法

StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()

        .detectDiskReads()

        .detectDiskWrites()

        .detectNetwork()   // or .detectAll() for all detectable problems

        .penaltyLog()

        .build());

        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()

                .detectLeakedSqlLiteObjects()

                .detectLeakedClosableObjects()

                .penaltyLog()

                .penaltyDeath()

                .build());

这样就不用放在一个线程中执行。
方法2:(没有测试)

new Thread(){
   @Override
   public void run()
   {
     //网络访问
   }
}.start();

 

你可能感兴趣的:(exception)