Welcome

首页 / 移动开发 / Android / Android访问网络异常退出的情况处理

Android访问网络异常退出的情况处理:

情况说明:我们在进行安卓开发时,经常需要用到访问网络,从网络中获取相应的数据的情况,但新版本安卓在直接访问网络时会报错。原因是在新版本中加入了线程安全模式。

有两种方式实现网络访问

第一种方法:

@Override protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_app);     if (android.os.Build.VERSION.SDK_INT > 9) 
    {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
      }
}


第二种方法:


@Override protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_app);   new Thread(runnable).start();//取得网络版本 }
另外需要单独定义



Handler handler = new Handler(){ @Override  public void handleMessage(Message msg) { super.handleMessage(msg);
        Bundle data = msg.getData();
        String netversion_data = data.getString("ver");
        String[] ary = netversion_data.split("@"); net_version = ary[0]; net_app_url = ary[1];
        ShowUpdate();
    }
};
Runnable runnable = new Runnable() { @Override  public void run() {     // TODO: http request.  Message msg = new Message();
        Bundle bundle=new Bundle();
        getLocalVersion();//取得本地版本  //以下是取得网络版本  String url = "http://www.xxx.com/getappversion";
        String ver = MyConstant.HttpGetData(url);
        bundle.putString("ver",ver);
        msg.setData(bundle); handler.sendMessage(msg);
    }
};