我是靠谱客的博主 迷你西装,最近开发中收集的这篇文章主要介绍android 多线程 闪退,Android Socket发送信息时闪退,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

尝试Android写Socket通信的时候,遇到的个坑,记录一下:

1、无法建立连接。

原因:没有添加网络使用权限请求;

解决方式:在"AndroidMainfest.xml"中添加

2、建立连接后正常接收信息,但发送信息时直接闪退,LogCat中异常提示为:android.os.NetworkOnMainThreadException

原因:百度了一圈,发现是在Android 7版本后才出现的,对主线程上的一个TCP Socket的写入操作严格检查,也就是不能在主线程中进行Socket写入发送。

解决方式:新建线程发送。

3、新建发送信息的线程,仍然闪退

原因:输出流也需要在新建的线程中new一个

成功发送的代码如下

new Thread(new Runnable(){

@Override

public void run() {

try {

//输出流写入发送编辑框的信息并指定类型UTF-8,注意要加换行

String str="TestString";

if(socket==null) return;

BufferedWriter outputStream=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

outputStream.write(str);

//输出流发送至服务器

outputStream.flush();

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}).start();

最后

以上就是迷你西装为你收集整理的android 多线程 闪退,Android Socket发送信息时闪退的全部内容,希望文章能够帮你解决android 多线程 闪退,Android Socket发送信息时闪退所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部