Android 模擬器測試遠端伺服器成功,但是到真機上測試一點反應沒有的解決辦法
阿新 • • 發佈:2019-02-02
new Thread(){
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
//定義登入需要的引數名和引數值
String[] paramsName={"UserName","md5Password","DBName","Server"};
String[] paramsValue={loginName.getText().toString(),MD5.getMD5ofStr(loginPwd.getText().toString()),loginDatabase.getSelectedItem().toString(),loginServer.getSelectedItem().toString()};
//使用webservice請求登入,返回json字串資訊
String result=WebServiceUtil.getDataByParams(Commom.uri,paramsName,paramsValue);
Message message=new Message();
Bundle bundle=new Bundle();
bundle.putString("result", result);
message.setData(bundle);
handler.sendMessage(message);
}
}.start();
handler=new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
resultString=msg.getData().getString("result");
Log.i("Thread()--resultString:", resultString);
//定義解析json資訊後放入map中的key名,需要和返回的json中的key相同
String[] xkeys= new String[] { "UserID", "LoginName", "UserName"};
//呼叫JsonParse.JsonStrParse3方法解析json,並返回list
ArrayList<HashMap<String, Object>> loginInfo=JsonParse.JsonStrParse3(resultString, xkeys);
//如果返回的失敗的資訊,則ArrayList中沒有任何的元素,否則ArrayList中就是上面定義的xkeys對應的value資訊
if (loginInfo!=null&&loginInfo.size()!=0&&!loginInfo.get(0).toString().trim().equals("")) {
//把登陸資訊儲存在Application裡面,只標註是否已經登陸
((MyApplication)getApplication()).setUserId(loginInfo.get(0).get("UserID").toString());
((MyApplication)getApplication()).setLoginName(loginInfo.get(0).get("LoginName").toString());
((MyApplication)getApplication()).setUserName(loginInfo.get(0).get("UserName").toString());
//登入成功後,跳轉到住介面
startActivity(new Intent(LoginActivity.this,MainActivity.class));
}else {
Toast.makeText(LoginActivity.this, "登入失敗", Toast.LENGTH_SHORT).show();
}
}
};