Android之android.os.NetworkOnMainThreadException异常
生活随笔
收集整理的這篇文章主要介紹了
Android之android.os.NetworkOnMainThreadException异常
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
今天用handler.post(Runnable);的時候出現(xiàn)了android.os.NetworkOnMainThreadException
Runnable里面使用的訪問網(wǎng)絡(luò)請求,網(wǎng)絡(luò)請求是不可以放在主線程里面的,所以出現(xiàn)了這個問題
因為我想執(zhí)行
handler.post(runnable); Runnable runnable = new Runnable(){String name = Thread.currentThread().getName();handler.postDelay(this,1000*5); }但是我打印出runable里面的線程名字依然是main.
所以是主線程,主線程訪問網(wǎng)絡(luò)請求是不行的,所以出錯。
解決辦法:我們開啟一個新的線程就可以了。
如果不消耗時間,我們可以用handler.postDelay(Runnable,time);循環(huán)
如果耗時間,我們可以用定時器,然后發(fā)送廣播,然后開啟線程進(jìn)行網(wǎng)絡(luò)探測
總結(jié):
handler.post(runnable);
沒有開閉一個新的線程,如果需要網(wǎng)絡(luò)訪問,我們可以開啟一個線程。
總結(jié)
以上是生活随笔為你收集整理的Android之android.os.NetworkOnMainThreadException异常的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之TrafficStats
- 下一篇: stringcstdlibctimecs