位置: 编程技术 - 正文

Android 模拟器测试远程服务器成功,但是到真机上测试一点反应没有的解决办法(安卓模拟器测试)

编辑:rootadmin
问题描述:android客户端,.net服务器,我是使用webservice交互。使用登陆模块测试,转递用户名和密码,请求成功与否接口都会返回json数据信息。在模拟器上测试,一切都正常,然后放到手机里面测试,怪了,一点返回数据都没有,不管是成功还是失败都没有返回任何数据。

推荐整理分享Android 模拟器测试远程服务器成功,但是到真机上测试一点反应没有的解决办法(安卓模拟器测试),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:安卓模拟器调试app,手机模拟器测试,安卓模拟器手机测试网页,软件测试安卓模拟器,安卓模拟器性能测试,安卓模拟器测试,安卓模拟器手机测试网页,安卓模拟器手机测试网页,内容如对您有帮助,希望把文章链接给更多的朋友!

原因:根据调试信息,截图如下:

Android 模拟器测试远程服务器成功,但是到真机上测试一点反应没有的解决办法(安卓模拟器测试)

可以知道,原因就是不能在主线程里面访问网络,网络请求不应该在主线程中进行,这样会阻塞主线程。要另外开一耳光线程来做网络请求。

解决方法,把网络请求的代码放到新开的线程中执行。我的解决代码如下:new Thread(){ @Overridepublic void run() {// TODO Auto-generated method stubsuper.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 stubsuper.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,并返回listArrayList<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();} }}; 好了,运行测试,一切都ok啦。 这篇文章在我的网易博客也发了:

Unity与Android互调 转载自:转载自

Unity与android互调 转载自:

android MediaPlayer 简记 基本用法1.开一个线程完成耗时操作newThread(){publicvoidrun(){initPlayer(i);}}.start();开启MediaPlayer的时候,由于需要调用底层native方法做硬件初始化,所以直接

本文链接地址:https://www.jiuchutong.com/biancheng/386003.html 转载请保留说明!

上一篇:Android注入框架你应该知道的一切------打造自己的注入框架(安卓hook注入工具)

下一篇:Unity与Android互调(unity androidx)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络