第10章 看看精彩的世界,使用网络技术
10.2.1 使用httpURLConnection
1、首先需要获取到httpUrlConnection的实例
2、传入目标的网络地址
3、然后调用一下openConnection()方法即可
URL url =new URL("http://www.baidu.com")
HttpUrlConnection connection =url.openConnection();
10.2.2 使用HttpClient
httpClient 是Apache提供的HTTP网络访问接口,从一开始就被引入到了Android API中。它可以王城和HttpURLConnection几乎一模一样的效果,但两者之间的用法确有较大的差别,那么我们自然要看一下HttpClient是如何使用的了。
1、httpClient是一个接口,因此无法创建它的实例,通常情况下都会创建一个DefaultHttpClient的实例。
2、如果想要发起一条get请求,就可以创建一个HttpGet对象
3、并传入目标的网络地址。
4、然后调用调用httpClient的execute方法即可。
5、如果是发起一条Post请求,就可以创建一个HttpPost对象
6、通过一个NameValuePair集合来存放待提交的参数,
7、并将参数集合传入到一个UrlEncodedFormEntity中。
8、然后调用httpPost的setEntity()方法构建好的UrlEncodedFormEntity传入
10.3 解析XML格式数据
10.5 网络编程最佳实践
网络请求通常都是耗时操作,而sendHttpRequest()方法的内部并没有开启线程,这样就有可能导致在调用sendHttpRequest()方法的时候使得主线程被阻塞住。
如果我们在sendHttpRequest()方法中开启了一个线程来发起http请求,那么服务器响应的数据是无法进行返回的,所有的耗时逻辑都是在子线程里进行。sendHttpRequest()方法会在服务器还来得及响应的时候就执行结束了,当然也就无法返回响应的数据了。
第11章 Android特色开发,基于位置的服务
Android中一般有三种位置提供器可供选择,GPS_PROVIDER、NETWORK_PROVIDER和PASSIVE_PROVIDER。其中前两种使用的比较多,分别表示使用GPS定位和使用网络定位,这两种定位方式各有特点,GPS定位的精准度比较高,但是非常耗电。
requestLocationUpdates()方法接受四个参数,第一个参数是位置提供器的类型,第二个参数是监听位置变化的时间间隔,以毫秒为单位,第三个参数是监听位置变化的距离间隔,以米为单位,第四个参数是LocationListener监听器。
11.3 反向地理编码,看得懂的位置信息
话说,刚才我们虽然成功获取了设备当前位置的经纬度信息,但遗憾的是,这种经纬度一般人是根本看不懂的。
第13章
无论在哪里都能获取到Context。
我们可以定制自己的一个Application类,每当程序启动的时候,系统就会自动将这个类进行初始化。而我们可以定制一个自己的Application类。
13.2 使用Intent 传递对象
13.2.1 Serializable方式
使用Intent传递对象通常有两种方式,Seriazlizable和Parcelable。
Seriazlizable是序列化的意思,表示将一个对象转换成可存储或可传输的状态。序列化后的对象可以在网络上进行传输,也可以存储到本地。至于序列化的方法也很简单,需要让一个类去实现Serializable这个接口就可以了。
13.2.2 Parcelable 方式
除了Seriazable之外,使用pacelable也可以实现相同的效果,不过不同于将对象进行序列化,Parcelable方式的实现原理是将一个完整的对象进行分解,而分解后的每一部分都是Intent所支持的数据类型。
注:读取的顺序和刚才写入的顺序完全相同
13.3 定制自己的日志工具