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四
- 下一篇: 梅捷主板bios怎么U盘启动 梅捷主板如