Android网络编程之下菜单系统中的真机调试问题小结
2013-05-20 16:44
429 查看
下单系统的几个主要功能模块经过了模拟器的调试之后,我们连接了真机(小米2)进行调试,又发现了不少问题,经过一番排查逐一解决掉了,遂在此做一个小结。
1. 仍然是Android3.0以上系统主UI线程不能使用网络操作问题,我们加上下面2段代码即可,但这只是权宜之计,真正的解决办法是把所有网络操作放入线程中进行
2. 服务器直接传回中文信息时,客户端显示乱码问题
解决办法:HttpUtil类中负责获得响应实体的方法参数中(无论Get与Post方式)附上编码格式,像这样:
3. 客户点菜时,输入中文备注,传到服务器端数据库中变为乱码问题:
解决办法:在OrderDetailServlet的doGet方法中先设置request的编码格式:
且将JDBC获取数据库连接的url地址后附加如下参数:
即可正常向MySQL插入中文数据。
4. 查询订单明细时,中文传回客户端WebView中显示乱码问题:
解决办法:让WebView使用loadDataWithBaseURL()方法加载html格式的String,并且编码要设为utf-8
注:如果是模拟器的话,我们可以这样加载:
并且客户端的html头部需要有编码格式声明:
(经测试,真机调试无需此头部元数据的声明)
1. 仍然是Android3.0以上系统主UI线程不能使用网络操作问题,我们加上下面2段代码即可,但这只是权宜之计,真正的解决办法是把所有网络操作放入线程中进行
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites().detectNetwork() .penaltyLog().build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects().penaltyLog() .penaltyDeath().build());
2. 服务器直接传回中文信息时,客户端显示乱码问题
解决办法:HttpUtil类中负责获得响应实体的方法参数中(无论Get与Post方式)附上编码格式,像这样:
// 判断是否请求成功 if (response.getStatusLine().getStatusCode() == 200) { // 获得响应 result = EntityUtils.toString(response.getEntity(), "gbk"); return result;
3. 客户点菜时,输入中文备注,传到服务器端数据库中变为乱码问题:
解决办法:在OrderDetailServlet的doGet方法中先设置request的编码格式:
req.setCharacterEncoding("utf-8");
且将JDBC获取数据库连接的url地址后附加如下参数:
url=jdbc:mysql://localhost:3306/wireless_db?useUnicode=true&characterEncoding=utf-8
即可正常向MySQL插入中文数据。
4. 查询订单明细时,中文传回客户端WebView中显示乱码问题:
解决办法:让WebView使用loadDataWithBaseURL()方法加载html格式的String,并且编码要设为utf-8
PayActivity.this.showOrderWebView.loadDataWithBaseURL(null, resultHtml, "text/html", "utf-8", null);
注:如果是模拟器的话,我们可以这样加载:
PayActivity.this.showOrderWebView.loadData(resultHtml, "text/html", "gbk");
并且客户端的html头部需要有编码格式声明:
<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">
(经测试,真机调试无需此头部元数据的声明)
相关文章推荐
- Android网络编程之一个Android下菜单系统模块的实现(服务器端—添单功能)
- Android 编程下小米2 真机调试中存在的问题及其解决方法
- Android网络编程之一个Android下菜单系统模块的实现(服务器端—结算功能(中部))
- Android网络编程之一个Android下菜单系统模块的实现(客户端—开桌功能(上部))
- Android网络编程之一个Android下菜单系统模块的实现(客户端—添单功能(中部))
- Android网络编程之一个Android下菜单系统模块的实现(客户端—添单功能(上部))
- Android网络编程之一个Android下菜单系统模块的实现(服务器端—结算功能(下部))
- Android网络编程之一个Android下菜单系统模块的实现(客户端—更新桌号)
- Android网络编程之一个Android下菜单系统模块的实现(客户端—结算功能)
- Android网络编程之一个Android下菜单系统模块的实现(服务器端—结算功能(上部))
- Android 编程下小米2 真机调试中存在的问题及其解决方法
- Android网络编程之——Android下菜单系统模块的实现(Android客户端+服务器端Servlet+Mysql)
- mac 系统开发android 真机调试找不到设备的问题
- Android网络编程之一个Android下菜单系统模块的实现(开桌功能))(Android客户端+服务器端Servlet+Mysql)
- Android网络编程之一个Android下菜单系统模块的实现(服务器端—开桌功能))
- Android网络编程之一个Android下菜单系统模块的实现(客户端—开桌功能(下部))
- Android网络编程之一个Android下菜单系统模块的实现(服务器端—更新菜单)
- Android网络编程之一个Android下菜单系统模块的实现(主操作界面)
- Android网络编程之一个Android下菜单系统模块的实现(服务器端—更新桌号)
- Android网络编程之一个Android下菜单系统模块的实现(客户端—更新菜单)