android.os.NetworkOnMainThreadException異常
問題描述:
android.os.NetworkOnMainThreadException
問題分析:
Android從 2.3 開始提供了一個新的類 StrictMode,該類可以用于捕捉發(fā)生在應(yīng)用程序主線程中耗時的磁盤、網(wǎng)絡(luò)訪問或函數(shù)調(diào)用,可以幫助開發(fā)者改進(jìn)程序,使主線程處理 UI 和動畫在磁盤讀寫和網(wǎng)絡(luò)操作時變得更平滑,避免主線程被阻塞。所以當(dāng)你在UI線程中進(jìn)行有關(guān)網(wǎng)絡(luò)的操作時,Android2.3及以上版本會拋出android.os.NetworkOnMainThreadException異常,如下圖:
解決辦法:
造成這樣的錯誤原因是代碼不符合Android規(guī)范,如果把網(wǎng)絡(luò)的訪問方式改為異步操作或另外開啟一個線程進(jìn)行有關(guān)網(wǎng)絡(luò)操作。就不會出現(xiàn)在Android2.3及以上進(jìn)行網(wǎng)絡(luò)操作出現(xiàn) android.os.NetworkOnMainThreadException異常。