加载中…
正文 字体大小:

android.os.NetworkOnMainThreadException

(2013-04-08 20:45:13)
分类: android

Android在4.0之前的版本 支持在主线程中访问网络,4.0以后不支持。

解决方法:

1.通过新的线程访问网络,

2.Handler更新View

//在onCreate 方法中:

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.vpdn_app);

handler = new Handler(){

public void handleMessage(Message msg) {

     if (msg.what == 1) {

java.lang.System.out.println("xml-->" + xml);

if (null == xml) {

Toast toast = Toast.makeText(vpdnListsActivity.this, "无法连接远程服务器", Toast.LENGTH_SHORT);

toast.setGravity(Gravity.TOP | Gravity.CENTER, 0, 220);

toast.show();


}

apnInfos = parse(xml);

SimpleAdapter simpleAdapter = buildSimpleAdapter(apnInfos);

// 将这个SimpleAdapter对象设置到ListActivity当中

setListAdapter(simpleAdapter);

}

super.handleMessage(msg);

}

};

}

//调用的方法:

private int updateListView() {

// 下载包含所有apn基本信息的xml文件

new Thread(){

public void run(){

xml = downloadXML("http://192.168.50.23:80/fzw/vpdntest.xml"); Message msg = new Message();

msg.what = 1;

handler.sendMessage(msg);

}

}.start();

return 0;

}


0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有