我在android webview和前台的js交互时,使用了
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
HttpApiClient api = new HttpApiClient();
String ValidityDate;
try {
ValidityDate = api.validate(mobile);
Log.i("id", mobile);
Log.i("ValidityDate", ValidityDate);
Intent intent = new Intent();
intent.putExtra("id", mobile);
intent.setClass(IndexActivity.this, LoginActivity.class);
IndexActivity.this.startActivity(intent);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
wView.loadUrl("javascript:setMsg('手机号码错误,请重新输入!')");
}
});
结果在android4.0以上系统报错:
03-24 10:42:12.748: W/System.err(14686): android.os.NetworkOnMainThreadException
解决办法:
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
HttpApiClient api = new HttpApiClient();
String ValidityDate;
try {
ValidityDate = api.validate(mobile);
Log.i("id", mobile);
Log.i("ValidityDate", ValidityDate);
Intent intent = new Intent();
intent.putExtra("id", mobile);
intent.setClass(IndexActivity.this, LoginActivity.class);
IndexActivity.this.startActivity(intent);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
wView.loadUrl("javascript:setMsg('手机号码错误,请重新输入!')");
}
}
}).start();