- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【例6-5】远程数据通信示例,本例由客户端程序和服务器程序两部分组成。 在配置文件AndroidManifest.xml中加入允许访问网络的权限语句: uses-permission android:name=android.permission.INTERNET / (b) 客户端运行结果 (a) 服务器端运行结果 6.2.3应用Callable接口实现多线程socket编程 1. Callable接口 在Java语言中,经常使用的Thread类在run()方法执行完之后是没有返回值的,要实现子线程完成任务后返回值给主线程需要借助第三方转存。Callable接口则提供了一种有返回值的多线程实现方法。 Callable接口的定义如下: public interface CallableV { V call() throws Exception; } 2. 线程接口Runnable和Callable的区别 Callable接口是与Java的Runnable接口的作用很类似,但它们之间又有很多不同,其区别如下: (1)Runnable接口是自从java1.1就有了,而Callable接口是1.5之后才新增加的; (2)Callable接口中定义的方法是call(),Runnable中定义的方法是run(); (3)Callable接口的任务执行后可以有返回值,而Runnable接口的任务是不能有返回值的(其返回类型为void); (4)call()方法可以抛出异常,run()方法不能抛出异常; (5)运行Callable接口任务可以返回一个Future对象,该对象为异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。 3. Callable接口实现多线程socket编程示例 【例6-6】应用Callable接口实现多线程远程数据通信示例。 Android客户端程序由实现callable接口的connSocket.java和主程序MainActivity.java两部分组成。 (代码略) 6.3 基于HTTP协议网络程序设计 6.3.1 建立PHP服务器网站 手机获取网络服务器的数据示意图 1. HttpURLConnection类 HttpURLConnection是java的标准类,由于没有进行封装,需要进行比较复杂的设置,用起来不太方便。 2. StrictMode类 StrictMode通常用于捕获磁盘访问或者网络访问中与主进程之间交互产生的问题,因为在主进程中,UI操作和一些动作的执行是最经常用到的,它们之间会产生一定的冲突问题。将磁盘访问和网络访问从主线程中剥离可以使磁盘或者网络的访问更加流畅,提升响应度和用户体验。 6.3.2 应用HttpURLConnection访问Web服务器 【例 6-7】从Web服务器读取图像文件 (1)界面布局文件activity_main.xml 设置一个按钮,2个用于显示信息的文本框,1个显示图像的ImageView。如图所示。 (代码详见教材) 【例6-8】以GET方式及POST方式向Web服务器读取及发送数据。 依题意,在手机客户端编写界面布局文件和主程序文件,在Web服务器端编写接收GET请求的play-get.php文件和接收POST请求的play-post.php文件。 (1)界面布局文件 如图所示 (2)主控程序 (代码见教材) (3)修改配置文件,设置网络访问权限 (4)Web服务器端接收GET请求的play-get.php文件 (代码见教材) (5)Web服务器端接收POST请求的play-post.php文件(代码见教材) 习题六 1、编写一个用户注册程序,向远程服务器注册。 2、编写一个具有密码验证功能的远程用户登录程序。 《Android应用程序设计》张思民编著 第6章 网络通信 6.1 Web视图 6.1.1 浏览器引擎WebKit WebKit是一个开源的浏览器引擎。Webkit内核具有非常好的网页解析机制,很多应用系统都使用WebKit作浏览器的内核。 Android对 Webkit作了进一步的封装,并提供了丰富的API。Android平台的WebKit模块由Java层和WebKit库两个部分组成,Java层负责与Android应用程序进行通信,而WebKit类库负责实际的网页排版处理。 WebKit包中的几个重要类 类 名 说 明 WebSettings 用于设置WebView的特征、属性等。 WebView
文档评论(0)