Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android.os.NetworkOnMainThreadException真機無法接收服務端數據

android.os.NetworkOnMainThreadException真機無法接收服務端數據

編輯:關於Android編程

問題描述:服務端JSP,客戶端android。將服務端發布後,客戶端在模擬器上可以調試接收到服務端傳回的數據,真機上卻接收不了,報異常:android.os.NetworkOnMainThreadException。


問題原因:程序在主線程上執行網絡訪問,在4.0中,訪問網絡不能在主程序中進行,網絡連接時 3.0版本以上都會出現這樣的問題 。這些都是在網上看到的說法。總之,感謝大家的分享啊~~~


參考文章:1、http://blog.csdn.net/dcl8261425/article/details/9181545

/AndroidRuntime(1185): android.os.NetworkOnMainThreadException

是因為程序在主線程上執行網絡訪問,所以產生的。 可以降低

android:minSdkVersion="8"
android:targetSdkVersion="8" />

不報異常。但是最好的解決方法還是寫線程


2、http://my.eoe.cn/iceskysl/archive/4382.html


public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.share_mblog_view);
//調用
    new Thread(runnable).start();
}

Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        Bundle data = msg.getData();
        String val = data.getString("value");
        Log.i("mylog","請求結果-->" + val);
    }
}

Runnable runnable = new Runnable(){
    @Override
    public void run() {
//這裡寫我的請求數據代碼

//傳值
        Message msg = new Message();
        Bundle data = new Bundle();
        data.putString("value","請求結果");
        msg.setData(data);
        handler.sendMessage(msg);
    }
}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved