学习笔记--Android TCP客户端与服务器端不能通信问题之一

学习笔记–Android TCP客户端与服务器端不能通信问题之一

android.os.NetworkOnMainThreadException报错

最近公司要我做一个Android端TCP通信控制视频播放软件,我做了TCP服务端和TCP客户端,用服务器端软件来控制TCP端视频播放器播放视频的功能,然而做好之后却遇到了不同Android版本服务端和客户端无法通信的问题,然后我进行了各种操作测试愁了两天发量更少了,发现同一版本的Android端可以进行通信,不同版本之间无法进行通信,最后发现是android.os.NetworkOnMainThreadException报错,查阅资料和大佬的文章发现Android 4.0之后的版本网络连接不能放在主线程,否则会保错不能使用。

解决方法:

TCP服务端添加下列代码

1.网络请求数据量很小的话可以加入这段代码

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	
		 //Android 4.0 之后不能在主线程中给客户端发送消息,网络请求数据量很小的话使用此代码可以进行通信
		 if (android.os.Build.VERSION.SDK_INT > 9) {
		     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
		     StrictMode.setThreadPolicy(policy);
		  }
}

2.启动一条子线程进行你的网络请求,推荐使用这种

  // Android 4.0 之后不能在主线程中给客户端发送消息
      new Thread(new Runnable(){
          @Override
          public void run() {
              cachedImage = asyncImageLoader.loadDrawable(imageUrl, position);
              imageView.setImageDrawable(cachedImage);
          }
      }).start();
总结

终于解决这个问题了,满满的成就感,真是泰开心了,学习了就要分享,大家一起努力哈,如果有问题评论区见。
感谢大佬的分享:https://blog.csdn.net/qq_29477223/article/details/81027716

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

求知路上的龙少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值