android.os.NetworkOnMainThreadException 異常的解決辦法,
剛開是把HttpURLConnectionnection 打開連接這個方法放在UI線程裏了,可能不是線程安全的,而且這個方法請求是需要等待的,所以就拋出了這個異常,後來用子線程打開的HttpURLConnection, 一切就都正常了,只要在主線程裏開啓子線程就行了。子線程利用URL
問題解決。下面貼一段代碼
String file1 = SERVER_PATH;
URL url = new URL(file1);
HttpURLConnection httpconn = (HttpURLConnection) url
.openConnection();
int responseCode = httpconn.getResponseCode();
if (responseCode != HttpURLConnection.HTTP_OK) {
Log.d(MP3, file1 + " 服務器故障");
mainHandler.sendEmptyMessage(NET_SERVER_ERROR);
}
鏈接正常,返回200後,就可以打開流接受字節了。
InputStream is = httpconn.getInputStream();
BufferedReader bfr = new BufferedReader(new InputStreamReader(is));
...後面的就略去了