以前用2.2 访问WebService没有问题,到3.0上访问出现android.os.NetworkOnMainThreadExcep
找了资料经过实践,解决方法是在activity类中的onCreate方法中添加strict代码,如下:
- public
void onCreate() { -
....... -
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() -
.detectDiskReads() -
.detectDiskWrites() -
.detectNetwork() // or .detectAll() for all detectable problems -
.penaltyLog() -
.build()); -
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() -
.detectLeakedSqlLiteObjec ts() -
.penaltyLog() -
.penaltyDeath() -
.build()); -
...... - }
packageorg.sword.android;
importjava.util.ArrayList;
importjava.util.List;
importorg.apache.http.HttpResponse;
importorg.apache.http.client.entity.UrlEncodedFormEntity;
importorg.apache.http.client.methods.HttpPost;
importorg.apache.http.impl.client.DefaultHttpClient;
importorg.apache.http.message.BasicNameValuePair;
importorg.apache.http.protocol.HTTP;
importorg.apache.http.util.EntityUtils;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.StrictMode;
importandroid.widget.Button;
public classInternetActivity extends Activity {
private staticfinal String SERVER_UTL ="http://www.webservicex.net/WeatherForecast.asmx/GetWeatherByZipCode";
private Buttonbutton;
}
}