1. 程式人生 > >安卓開發網路相關bug解決方案

安卓開發網路相關bug解決方案

兩個bug:
1: android.os.NetworkOnMainThreadException
原因:因為main執行緒要處理UI,預設不能使用網路導致假死
Android這個設計是為了防止網路請求時間過長而導致介面假死的情況發生。解決方案有兩個,一個是使用StrictMode,二是使用執行緒來操作網路請求。

2: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
原因: 安卓程式的網路訪問需要設定許可權的

解決方案

  1. // Android 4.0 之後不能在主執行緒中請求HTTP請求(HttpRequest 方法類要自己定義)
new Thread(new Runnable(){
            @Override
            public void run() {
            //傳送GET請求
                String s=HttpRequest.sendGet("http://localhost:6144/Home/RequestGetString", "key=123&v=456");
                System.out.println(s);
                //傳送 POST 請求
                String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456");
                System.out.println(sr);
            }
        }).start();

2:在AndroidManifest.xml中新增如下行,允許網路訪問許可權就可以了。

<uses-permission android:name="android.permission.INTERNET" />

參考文獻:
https://blog.csdn.net/llixiangjian/article/details/72910557
https://blog.csdn.net/hack8/article/details/28038541