《第16章天气预报WebService调用PPT课件》由会员分享,可在线阅读,更多相关《第16章天气预报WebService调用PPT课件(12页珍藏版)》请在金锄头文库上搜索。
1、第16章天气预报-WebService调用网络资源:http:/ 本章案例效果分析案例概述本例主要实现天气预报功能,通过WebService访问第三方提供的天气信息,获取到的是一连串的字符串信息,然后对这些信息进行解析、加工、设计成普通用户能一目了然的界面效果。本例中天气预报主要功能包括显示当前的天气实况、查看未来五天的天气信息、查看天气变化趋势图、切换城市查看天气信息等。主要涉及到WebService调用、TabHost+Fragment实现功能切换、ListView显示未来五天天气信息、GridView显示省份列表和城市列表、SharedPreference保存基本信息、自定义控件绘制趋势
2、图等知识。WebService介绍WebService是一种基于SOAP(SimpleObjectAccessProtocol,简单对象访问协议)协议的远程调用标准,主要包括三要素:SOAP、WSDL(WebServiceDescriptionLanguage,WebService描述语言)、UDDI(UniversalDescriptionDiscoveryandIntegration,统一描述、发现和整合协议)。其中SOAP用于传递信息的格式,WSDL用于描述如何访问具体的接口,UDDI用来管理、分发、查询WebService。通过WebService可以将不同操作系统平台、不同语言、不同
3、技术整合到一块。在AndroidSDK中并没有提供调用WebService的库,因此,需要使用第三方的SDK来调用WebService。比较常用的如ksoap2。将下载得到的JAR包添加到Android项目的libs目录下。调用WebService的一般步骤使用使用ksoap2-android调用调用WebService操作的步骤如下:操作的步骤如下:创建HttpTransportSE对象,该对象用于发送请求,调用WebService,需要传递想要访问的服务地址;创建SoapSerializationEnvelope对象,该对象代表SOAP消息封装包,用户请求的SOAP以及服务器响应生成的SO
4、AP都可以通过该对象设置和得到,创建该对象时需要传递当前使用的SOAP的版本号,不同的版本会有所区别。创建SoapObject对象,创建该对象时需要传递所需要调用的WebService的命名空间以及访问的方法名,其中命名空间需要和WSDL文件中描述的一致。调用WebService的一般步骤调用SoapObject对象的addProperty(Stringname,Objectvalue)方法来设置参数,可多次调用该方法,设置多个参数。调用SoapSerializationEnvelope对象的setOutputSoapObject()方法,或者直接对bodyOut属性赋值,将前面所创建的Soa
5、pObject对象作为请求体。调用HttpTransportSE对象的call()方法,发送请求,需传递两个参数:命名空间+需要访问的方法名和SoapSerializationEnvelope对象。调用完成后,判断是否有响应,即SoapSerializationEnvelope对象的getResponse()方法的结果是否为空,如果不为空,则根据SoapSerializationEnvelope对象的bodyIn属性获取SoapObject对象,然后解析该SoapObject对象,即可获取WebService的返回值。SharedPreference保存信息通常用户在使用APP时,都会产生一些
6、个人信息,如记录用户名和密码、登录状态等,为了使用户下次打开APP时即能获取这些信息,APP应及时保存这些个人信息。Android中提供了SharedPreferences来保存这些信息。在本例中需要保存用户所选择的城市将其作为默认城市。1.应用程序使用SharedPreferences接口接口可以快速而高效的以键值对的形式保存数据以键值对的形式保存数据,非常类似于Bundle;2.信息以XML文件的形式文件的形式存储在Android设备上; 3.Sharedpreferences里的数据可被该应用的所有组件所可被该应用的所有组件所访问访问。SharedPreferences保存信息 Shar
7、edPreferences接口本身只提供了读取数据的功能并没有提供写入数据的功能,如果需要实现写入功能,则需通过SharedPreferences的内部接口Editor来实现,SharedPreferences调用edit()方法即可获取对应的Editor对象。 SharedPreferences本身是一个接口,不能直接实例化,只能通过Context提供的getSharedpreferences(Stringname,intmode)方法来获取SharedPreferences实例,第一个参数表示保存信息的文件名,不需要后缀;第二个参数表示Sharedpreferences的访问权限,包括只能
8、被本应用程序读、写,能被其他应用程序读、能被其他应用程序写。两次返回键退出应用程序 在Android应用中,为了避免用户误操作退出应用程序,通常都会在用户单击退出按钮或手机上的返回键时,给用户一些提示。例如弹出对话框询问用户是否确定要退出,或者提示用户再次单击退出应用。本例采用第二种。 主要思路是定义一个全局的变量count用于记录用户单击退出按钮的次数,默认为1,然后为退出按钮添加事件处理,首先判断count的值是否小于2,如果小于2则通过Toast弹出提示信息,并启动一个线程用于计时,三秒后count的值恢复为1,如果在3秒内单击第二次则退出。如果不小于2,调用Activity的finish()方法结束当前Activity。模仿调用天气的WebService,调用WebService实现国内手机号码归属地查询功能。(WebService地址:http:/