1. 程式人生 > >關於Android開發中的android.os.networkonmainthreadexception問題

關於Android開發中的android.os.networkonmainthreadexception問題

首先明確一點出現此錯誤並不是代表程式碼錯誤。

在android2.3之後 在主執行緒中禁止直接訪問網路,必須使用另一個執行緒如handler機制,或者非同步任務獲取網路資料,下面給出兩種解決方案。
1、如果你想直接在主執行緒中訪問網路,請使用第一種方法,該方法簡單暴力,但不推薦使用。
我們只需要在onCreate方法的setContentView(R.layout.activity_main);後面加上這樣一段程式碼即可:
if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }
2、既然不能在主執行緒中連網,那我們就新建一個執行緒來操作網路資料,推薦使用該方法。
new Thread(){
@Override
public void run(){
//把要聯網的程式碼放在這裡
}
}.start();

相關推薦

關於Android開發android.os.networkonmainthreadexception問題

首先明確一點出現此錯誤並不是代表程式碼錯誤。 在android2.3之後 在主執行緒中禁止直接訪問網路,必須使用另一個執行緒如handler機制,或者非同步任務獲取網路資料,下面給出兩種解決方案。

Android開發有用工具之--Log工具類

util lena 日誌 日誌信息 stat 們的 常常 我們 imp 在開發的過程中。我們常常會使用Log來輸出日誌,幫助我們來調試程序 可是有時候並不能全然滿足我們的須要 ,比方我想知道這個日誌信息是來自於哪一個包 哪一個類 所以我們封裝一個這個Log類。方便我們的

Android學習探索之Java 8 在Android 開發的應用

相關 概念 容易 並不是 min etc bstr trac flavor 前言: Java 8推出已經將近2年多了,引入很多革命性變化,加入了函數式編程的特征,使基於行為的編程成為可能,同時減化了各種設計模式的實現方式,是Java有史以來最重要的更新。但是Androi

android開發如何使用JavaMail程序

有一個 pro 會話 jpg names prot get ext 會有  javaMail,是提供給開發者處理電子郵件相關的編程接口。它是Sun發布的用來處理email的API。它可以方便地執行一些常用的郵件傳輸。我們可以基於JavaMail開發出類似於Microsoft

Android開發的各種尺度單位

href roi 放大 pla blank 區別 csdn tro 自定義 px 像素(pixel),表示屏幕上一個物理像素點 不建議直接使用 px 繪制UI,因為受像素密度的影響,以 px 為單位繪制的UI在不同手機上顯示的實際大小會不同 dp (用於定義控件

android開發——Android開發的47個小知識

環境 底部 枚舉 目前 mount ram 啟動 creat ica 1、判斷sd卡是否存在 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environm

Android開發幾種有用的的日歷控件實現

顯示 lec 外觀 翻頁 frame 時間 lean android平臺 星期 我們大家都知道,在Android平臺3.0中才新增了日歷視圖控件,可以顯示網格狀的日歷內容,那麽對於3.0以下的版本要使用日歷控件只能借助第三方,目前用的最多的是CalendarView。 先簡

Android開發java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}

net 控件 view etc spi pos rst ack data Android開發中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullP

Android開發dp,sp和px之間的轉換

font col art gpo ati pan ext 同時 style 本文轉載於 http://blog.csdn.net/student9128/article/details/53932470 眾所周知,在Android開發中dp和px,sp和px之間的轉換時必不

Android開發怎樣用多進程、用多進程的好處、多進程的缺陷、解決方法(轉)

傳遞 標簽 事情 打印 ide 即時通訊 ice cati 一個數 轉自:http://blog.csdn.net/spencer_hale/article/details/54968092 1.怎樣用多進程 Android多進程概念:一般情況下,一個應用程序就是一個進

Android開發XRecyclerview用法及遇到的一些問題

解決 pos sage head ebe 專業 剛才 adapt 只需要 目前通過xrecyclerview的開源代碼來實現系列功能,加載數據傳入type,值為1,2,3,分別表示初次加載,下拉刷新數據,上拉加載更多數據操作,刷新數據只需要重新放入數據,然後notifyDa

Android開發ScollView嵌套 WebView底部高度無法自適應解決

hbase get ride web algorithm 接口 試驗 splay 網頁加載 最近要做一個頁面,需要 ScrollView 嵌套 WebView,怎麽嵌套,怎麽解決焦點和 touch 事件沖突,網上一大堆,這裏就不贅述了,但是發現 WebView 從一個高度很

Android開發遇到的adb命令總結

1、獲取螢幕解析度:    adb shell dumpsys window displays 2、修改裝置dpi :    adb shell              wm density  240  (以240dpi為例)       

經驗之談;Android開發需注意的一些坑

1、不要排斥新技術和新工具。 Android Studio 1.0 之後的版本,基本已經穩定到可以支援正常的工作開發的程度了。單純就書寫效率而言,Android Studio 帶來的好處絕對大於它和Gradle的學習成本。JetBrains的IDE,用過都說好。 還有就是適當的提升targe

Android開發需要了解的session知識

Cookie和Session都為了用來儲存狀態資訊,都是儲存客戶端狀態的機制,它們都是為了解決HTTP無狀態的問題而所做的努力 Session可以用Cookie來實現,也可以用URL回寫的機制來實現 Cookie和Session有以下明顯的不同點: 1)Cookie將狀態儲存

Android開發的使用單位問題的處理總結

目前最新的SDK是推薦dp這個單位,其實在真正開發過程中,無論是dp還是dip都不怎麼會影響到顯示效果(dip原本是dip,為了和sp這個單位同意,改名成了dp) px 全拼pixel,我們常說的畫素,構成我們螢幕上影象的最小單位 概念:顯示解析度是顯示器在顯示影象時的解析度,解析度

Android開發的SQLite事務處理,即beginTransaction()方法

使用SQLiteDatabase的beginTransaction()方法可以開啟一個事務,程式執行到endTransaction() 方法時會檢查事務的標誌是否為成功,如果程式執行到endTransaction()之前呼叫了setTransactionSuccessful() 

Android開發執行方法含有監聽時的處理

以WifiP2pManager. requestPeers()為例 方法一:直接新建一個監聽例項,然後新增監聽後的回撥方法 manager.requestPeers(channel, new WifiP2pManager.PeerListListener() {

Android開發常見記憶體洩漏問題

##一、記憶體洩漏原因 當一個物件不再使用時,本該被回收,而另一個正在使用的物件持有它的引用導致不能被回收,就產生了記憶體洩漏。 ##二、記憶體洩漏的影響 Android系統為每個應用程式分配的記憶體有限,當應用中記憶體洩漏較多時,輕則造成可用空間不足,頻繁發生gc,表現為應用執行卡

android開發如何從當前頁面返回上一頁面

在開發過程中我們常常會用返回鍵的功能。在一些特定的場合下也可以自己寫返回功能。 一開始我是用intent來建立一個新的頁面。後面發現這樣等同於重新打開了一個新的頁面。 接下來用這種方法:Activity.this.finish(); 直接結束掉當前頁面即可。 原理 :