1. 程式人生 > >安卓4.0以後主執行緒訪問網路問題(NetworkOnMainThreadException)解決方法及子執行緒更新ui

安卓4.0以後主執行緒訪問網路問題(NetworkOnMainThreadException)解決方法及子執行緒更新ui

安卓4.0之後谷歌建議不在主執行緒訪問網路,可能是因為訪問網路可能會等待時間長造成假死現象,解決辦法無非是強行訪問和開一個子執行緒訪問

1.強行訪問:

在activity裡面onCreate方法裡面加入

StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

這裡不建議,谷歌禁止肯定有他的原因;

2.開啟子執行緒訪問:

new Thread(new Runnable() {
    @Override
public void run() { // TODO 此處訪問網路 } }).start();
當然,如果你在run方法裡面修改ui也是會保錯,解決方法如下:

通過handler去修改,可以這樣

handler.post(new Runnable() {
    @Override
public void run() {
}
});

相關推薦

4.0以後執行訪問網路問題NetworkOnMainThreadException解決方法執行更新ui

安卓4.0之後谷歌建議不在主執行緒訪問網路,可能是因為訪問網路可能會等待時間長造成假死現象,解決辦法無非是強行訪問和開一個子執行緒訪問 1.強行訪問: 在activity裡面onCreate方法裡面加

6.0以後,socket連線失敗的原因

老早以前的專案要適配安卓7.0的平板電腦 - 信心滿滿的以為無縫適配,結果使用nio的socketchannel連線tcpserver時,一直連線失敗,而同樣的程式在5.0的安卓平板上就秒連,納悶了

Android4.0開發環境搭建

http://d.1tpan.com/tp0073340771 大家從上面的地址中下載一個文件,該文件中詳細說明了如何搭建Android安卓4.0開發環境,並且文件中列出了我上傳到網上的相關安裝包的連線地址,大家可以直接下載,按這個文件的說明進行安裝。

【ROM修改教程】新增高階電源重啟選單(4.0.4官方ROM)

準備工作: 電腦上安裝好JDK、下載smali和baksmali、下載apktools、要修改的ROM、adb工具(可選) 注:由於本教程面向的物件為有一定ROM修改基礎的兄弟,所以對於如何使用電腦,如何使用CMD以及上述工具的具體用法等等都不在本貼的討論範圍內,本文將僅講述如何新增高階重啟選單 1、從要

4.0響應滑鼠左右點選事件

4.0的更新說明裡:為了方便起見,後面滑鼠按鈕被自動對映到KEYCODE_BACK,KEYCODE_FORWARD鍵,應用程式可以處理這些按鍵,支援滑鼠按鈕的基礎和前進導航。 我現在的機器插上滑鼠後左右鍵都是KEYCODE_FORWARD,我想吧右鍵改為KEYCODE_

5.0以後禁止文字編輯框EditText複製、貼上、選擇、全選等功能的幾種可行性方法探索

現在各手機廠商深度化定製rom,在谷歌原生系統上重新開發了很多功能,比如EditText的長按或雙擊事件彈出框支援線上翻譯,搜尋等,如果你的專案出於資訊保安考慮想禁止這些功能實現的話,你會發現網上現有的方法都無法做到適配所有手機,總有那麼幾款漏網之魚,非常頭疼。下面介紹兩種自

4.0 修改Mac地址

用es瀏覽器找到:/etc/firmware/nvram.txt檔案,在修改之前需要root許可權(你用哪個瀏覽軟體,就在該軟體的設定裡找),千萬要備份好此檔案(不備份也能還原)開啟nvram.txt,找到以下段落#macaddr=00:11:22:33:44:55nocr

IDEA從0搭建SSM專案【圖文】——部署到遠端伺服器執行

系列(一)和(二)實現了本地localhost執行,但是實際生產往往需要我們把專案放到遠端伺服器上執行,本文演示如何具體實現~ 一. 需要具備的知識 1.maven命令 2.linux常用命令 3.linux安裝jdk,tomcat,mysql 二.伺服器 1.

nrf51822 BLE 4.0 低功耗藍芽協議 解析

參考文件: 《TI 2013研討會藍芽4.0講解部分PPT 20130508.pdf》重點 《TI_BT-LE-TRAINNING.PDF》 《05_BLE Intro.pdf》 BLE: Bluetooth Low Energy 協議棧結構和配置

win7 安裝.Net framework 4.0出現 安裝不成功,錯誤程式碼0x80240037 的解決方法

1.安裝說明系統:win7 64位安裝包:dotNetFx40_Full_x86_x64.exe(.Net framework 4.0)出現的問題:在win7 上安裝dotNetFx40_Full_x86_x64.exe之後,彈出說明框:.Net framework 4安裝未

手機驅動無法安裝則無法連線電腦,終極100%解決方法】ADB interfacm與 Andriod安裝出現黃色感嘆號

1、我不是技術人員,也不是為了碼程式碼除錯手機特別研究,純粹一顆不服輸的心態,鑽研,學習的風格。廢話不多說了,我說乾貨文章算是百度、BBS\SNS等解答最新最權威,最有效的方法了。ADB interfacm 、Andriod、MTC 等驅動感嘆號你們遇到的問題有以下幾類現象:

執行間操作無效: 從不是建立控制元件的執行訪問它的三種解決方法

今天遇到這個問題,百度了下,把解決的方法總結出來。 我們在ui執行緒建立的子執行緒操作ui控制元件時,系統提示錯誤詳細資訊為: 執行緒間操作無效: 從不是建立控制元件“XXX”的執行緒訪問它。 就我知道的有三種方法,先看一下msdn的介紹: 訪問 Windows 窗

33---varnish 4.0 工作機制和配置例項解析

這兩天在看varnish,感慨一句,這軟體真不錯!!! ============ 功能&程式包: 首先varnish是反向HTTP代理,是具有強大快取功能的代理,因此也被稱之為web加速器或http加速器。官網對它的描述是不僅是代理,還說它具有web應用防火牆、抵禦

Android的執行詳解幾種實現方法區別

一、Android執行緒的定義和特點     1.什麼是執行緒: 執行緒是一種輕量級程序,大多數情況下用於執行非同步操作。在一個Android 程式開始執行的時候,會單獨啟動一個程序,同時會產生一個UIThread執行緒(main執行緒)。一個Android 程式預設情況

Zabbix 4.0,添加Linux監控主機2

include onf blog 地址 x86_64 ges 監控模板 根據 logfile 一、安裝Zabbix-agent 以下操作在所需加入監控的Linux主機上進行:實驗為,192.168.100.51 # rpm -ivh http://repo.zabbix.c

Linux 中 4 個簡單的找出程序 IDPID方法 | Linux 中國

每個人都知道 PID,究竟什麼是 PID?為什麼你想要 PID?你打算用 PID 做什麼?你腦子

android 4.0 執行訪問網路異常

    android出現如下異常資訊,是因為4.0以上不允許在主執行緒中訪問網路。     1.可以再Activity的onCreate()方法中加入這樣一段程式碼,如下: if (Build.VERSION.SDK_INT >= 11) {StrictMode.s

關於unity打包的apk在8.0執行黑屏的解決方案

當前專案unity打了安卓端的測試包,在安卓5.0,6.0,7.0執行的時候都是正常的。唯獨在安卓8.0執行黑屏,一開始的時候單純的以為是安卓sdk版本的問題,後來分別查看了unity的安卓sdk跟引入的安卓部分的sdk版本如下圖,發現安卓8.0對應的api26都是轉裝好的。

android 4.4 5.0 5.1 6.0支付flash的原始碼支援as2.0 flash

softboy軟體為使用者解決這一難點。 4.0 之後由於谷歌放棄原來的瀏覽器核心使用chrome 作為核心導致flash無法展示。 as3.0 的flash 可以使用adobe air 展示 但是flash需要跟apk打包在一起。  softboy 軟體提供的 可以 開

6.0執行時許可權處理方案

    許可權檢查一般放在APP的入口,比如說閃屏頁splashactivity中或者baseapplication中。     其中需要兩個類,一個是PermissionChecker,一個是PermissionsActivity。第一個是用來檢測當前是否已經獲取到了申請