android.os.NetworkOnMainThreadException

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;
	}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值