Android 台灣中文網
標題:
請問發生 android.os.NetworkOnMainThreadException問題
[打印本頁]
作者:
aa3522
時間:
2013-4-12 17:25
標題:
請問發生 android.os.NetworkOnMainThreadException問題
我目前寫了一個程式 用2.3.3以下手機可以連到網路
用更高的就出現android.os.NetworkOnMainThreadException
我有網路查文說是不能直接在ui 掛載網頁
有人說第一種是使用thread 來存取 網路,但完全沒頭緒有人可以提供範例嗎?
第二種說可以使用這幾句貼上去就能解決
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
但是我使用這幾句他寫有問題 整個程式就無法執行了這怎樣回事
第三種說android:targetSdkVersion設定成10或9 ,這方法能讓我的蝴蝶機 灌程式之後連網成功
但是我程式上面有地圖功能 我不知道會不會有影響
還是有別的解決方式
作者:
ploglin
時間:
2013-4-12 17:25
本帖最後由 ploglin 於 2013-4-16 10:58 編輯
我記得在 2.3 之後的版本,他們不希望你在主程序中去存取網路,因此會出現這樣的錯誤。
你可以透過 Thread 的方式,或是 Async 的方式去存取網路,這樣就不會有問題了。
切記,如果使用的是 Thread 的方式,在 run 的函式中,是不可以去處理 UI 的,必需在 handlerMessage 中再去處理,否則也會有錯誤。
Thread Example
http://cookiesp.pixnet.net/blog/post/90291024-android-thread-%E7%B0%A1%E5%96%AE%E9%81%8B%E7%94%A8
Async Example
http://blog.csdn.net/mylzc/article/details/6772129
作者:
whl
時間:
2013-4-12 23:44
1. google 一下就有很多範例啊
google 一下
2.map 只要有出現地圖,就是成功了,和 sdk 版本無關。
作者:
iamjason008
時間:
2013-4-15 16:02
參考這裡看看
http://developer.android.com/training/basics/network-ops/connecting.html
http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception
歡迎光臨 Android 台灣中文網 (https://apk.tw/)
Powered by Discuz! X3.1