Android.os.NetWorkOnMainThreadException的处理及多线程中更新ListView数据
来源:互联网 发布:手机不休眠软件 编辑:程序博客网 时间:2024/06/14 07:24
在2.x中访问网络不会出理Android.os.NetWorkOnMainThreadException异常,但在4.0版本中运行则会报此错误(在主线程访问网络时出的异常),
Android在4.0之前的版本 支持在主线程中访问网络,但是在4.0以后对这部分程序进行了优化,也就是说访问网络的代码不能写在主线程中
网上很多使用
// 详见StrictMode文档
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork() // or .detectAll() for all detectable problems
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
这种方法解决,但detectLeakedClosableObjects() 会报错误,因为detectLeakedClosableObjects需要4.0以上的SDK,2.x中是没有的
接下来只能采用多线程解决
//定义线程
Runnable searchGooRunnable = new Runnable()
{
@Override
public void run()
{
// TODO Auto-generated method stub
try
{
Looper.prepare();
ProgressDialog.show(MainActivity.this, "查询", "正在连接服务器,请稍等");
Log.e("ycsmart", "开始线程执行");
...
Log.e("test", "线程执行结束");
Looper.loop();
} catch (Exception ex)
{
Log.e("test", ex.toString());
}
}
};
//定义消息接收
@SuppressLint("HandlerLeak")
private Handler hander = new Handler()
{
@Override
public void handleMessage(Message msg)
{
Log.e("test", "测试消息");
}
};
执行线程
new Thread(searchGooRunnable).start();
Thread中无法处理UI的更新,所以使用 Handler 来接受需要更新 UI 的消息
- Android.os.NetWorkOnMainThreadException的处理及多线程中更新ListView数据
- android.os.NetworkOnMainThreadException 异常的处理
- 处理android.os.NetWorkOnMainThreadException异常的方法
- android.os.NetworkOnMainThreadException异常处理
- 异常处理-android.os.NetworkOnMainThreadException
- android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException异常处理
- android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException 异常处理
- Android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException处理方案
- android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException异常处理
- android.os.NetworkOnMainThreadException 异常处理
- android.os.NetworkOnMainThreadException 异常处理
- Android中的分层----service 层,domain层,dao 层,action层等设计
- UIWebView体系结构(八)各个Client综述
- 求做3D游戏的一些想法,最好能用C++
- 树状数组 区间更新
- Java线程详解
- Android.os.NetWorkOnMainThreadException的处理及多线程中更新ListView数据
- VS2010上关于dialogbar的操作
- ubuntu 如何安装sh文件
- linux查找替换命令
- Yii CDBCriteria常用方法
- javaBean的内省操作
- Iphone的UILabel和UIFieldText
- mongo数据库的group 学习例子
- UNIX笔记--(longjmp ,setjmp)异常处理