android3.0以前主线程联网问题出错问题解决

setContentView(R.layout.activity_main)下面加上如下代码

?


1

2

3

4

if
(android.os.Build.VERSION.SDK_INT >
9) {

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

 StrictMode.setThreadPolicy(policy);

}

应该在子线程联网!!!!!

时间: 2024-11-10 20:34:42

android3.0以前主线程联网问题出错问题解决的相关文章

android 4.0主线程訪问网络问题

在4.0下面,在主线程中訪问网络,假设请求超过6s的话,就会报ANR,那么这就会带来一个问题,假设网络慢或者请求的数据过大时,界面会卡顿,造成界面灵敏性非常差,因此网络请求一般不能放在主线程中操作,google在4.0时做了调整,一般在主线程中请求网络,就会报错,这样就使得我们这些程序猿就不得不启动子线程去网络网络了,假设4.0在主线程中操作网络报错信息例如以下: <span style="color:#ff6666;">10-19 12:14:44.656: E/Andr

android 4.0主线程访问网络问题

在4.0以下,在主线程中访问网络,如果请求超过6s的话,就会报ANR,那么这就会带来一个问题,如果网络慢或者请求的数据过大时,界面会卡顿,造成界面灵敏性很差,因此网络请求一般不能放在主线程中操作,google在4.0时做了调整,一般在主线程中请求网络,就会报错,这样就使得我们这些程序员就不得不启动子线程去网络网络了,如果4.0在主线程中操作网络报错信息如下: <span style="color:#ff6666;">10-19 12:14:44.656: E/Android

全局异步和主线程异步区别、改变PlaceHolder颜色、解决键盘弹起挡住文本框问题

1.全局异步执行耗时任务 dispatch_async(dispatch_get_global_queue(0, 0), ^{ }); 2.主线程异步刷新UI dispatch_async(dispatch_get_main_queue(), ^{ }); 3.改变PlaceHolder的颜色 [username_text setValue:[UIColor colorWithRed:1 green:1 blue:1 alpha:0.5] forKeyPath:@"_placeholderLab

java 多线程 , 等待所有子线程都执行完后 , 在执行主线程(其中的一种 , 也是个人觉得最好用的一种)

public static void main(String[] args) throws InterruptedException { // Runtime.getRuntime().availableProcessors() 获取可用的cpu数量 int count = Runtime.getRuntime().availableProcessors(); //创建一个指定线程数量的线程池 ExecutorService executorService = Executors.newFixe

解决Android3.0之后不能在主线程中进行HTTP请求

在Android3.0以后,会发现,只要是写在主线程(就是Activity)中的HTTP请求,运行时都会报错,这是因为Android在3.0以后为了防止应用的ANR(aplication Not Response)异常. 针对此问题有两种解决的方法: 1.可以再Activity的onCreate()方法中加入这样一段代码,如下: 1 if (Build.VERSION.SDK_INT >= 11) { 2 StrictMode.setThreadPolicy(new StrictMode.Thr

android.os.NetworkOnMainThreadException 在4.0之后谷歌强制要求连接网络不能在主线程进行访问

谷歌在4.0系统以后就禁止在主线程中进行网络访问了,原因是: 主线程是负责UI的响应,如果在主线程进行网络访问,超过5秒的话就会引发强制关闭, 所以这种耗时的操作不能放在主线程里.放在子线程里,而子线程里是不能对主线程的UI进行改变的, 因此就引出了Handler,主线程里定义Handler,子线程里使用. 消息机制的写法 [1] anr Application not response 应用无响应 主线程(UI线程) [2] 如果在主线程中进行了耗时的操作 (比如连接网络 拷贝大的数据) Th

Android4.0 主线程不能访问网络异常解决办法

从两个方面说下这个问题: 1. 不让访问网络的原因 2. 解决该问题的办法 不让访问网络的原因: 由于对于网络状况的不可预见性,很有可能在网络访问的时候造成阻塞,那么这样一来我们的主线程UI线程 就会出现假死的现象,产生很不好的用户体验.所以,默认的情况下如果直接在主线程中访问就报出了这个异常,名字是NetworkOnMainThreadException 解决该问题的办法 1. 独立线程 2. 异步线程AsyncTask 3. StrictMode修改默认的策略 1) 独立线程的办法 启动一个

android 主线程和子线程之间的消息传递

从主线程发送消息到子线程(准确地说应该是非UI线程) package com.zhuozhuo;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.util.Log;import android.view.View;import android.view.Vie

delphi 主线程向子线程发送消息

while True do begin if not PeekMessage(msg,0,0,0,PM_REMOVE) then begin case MsgWaitForMultipleObjects(1,hCloseEvent,False,INFINITE,QS_ALLINPUT) of WAIT_OBJECT_0: Break;//hCloseEvent事件已经有效,故结束 WAIT_OBJECT_0+1:Continue;//消息队列中有消息存在 else Break;//其它情况,WM