一.Android应用的基本组件介绍:
17.被调用组件可通过IntentFilter来生命自己所满足的条件。
三.事件处理:
1.两套事件处理机制 :基于回调的事件处理和基于监听器的事件处理。
【基于监听器的事件处理:
2.事件响应的动作实际上就是一系列程序语句,通常以方法的形式组织起来,这些方法也被称为事件处理器(Event Handler)。
3.当用户按下一个按钮或者单击某个菜单项时,这些动作就会激发一个相应的事件,
该事件就会触发事件源上注册的事件监听器(特殊的Java对象),事件监听器调用对应的事件处理器(事件监听器里的实例方法)来做出相应的响应。
4.每个组件均可针对特定的事件指定一个事件监听器,每个事件监听器也可监听一个或多个事件源。
5.普通java程序里的方法由程序主动调用的,事件处理中的事件处理器方法是由系统负责调用的。】
【基于回调的事件处理:
6.当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件。
事件源和事件监听器是统一的,当事件发生特定事件之后 ,该事件还是由事件源本身负责处理。
7.boolean类型的返回值用于标识该处理方法是否能完全处理该事件:
如果处理事件的回调方法返回true,标明该处理方法已完全处理该事件,该事件不会传播出去。
如果处理事件的回调方法返回false,标明该处理方法并未完全处理该事件,该事件会传播出去。
8.某组件上所放生的事情不仅激发该组件上的回调方法,也会触发该组件所在Activity的回调用法————只要该组件没有完全处理该事件。
9.当该组件上发生某个按键被按下的事件时,Android系统最先触发的应该是该按键上绑定的事件监听器,接着才触发该组件提供的事件回调方法。
10.通过为View提供事件处理的回调方法,可以很好地把事件处理方法封装在该View内部。】
11.Configuration类专门用于描述手机设备上的配置信息,这些配置信息包括用户特定的配置项,也包括系统的动态设备配置。
12.如果程序需要监听系统设置的更改,则可以考虑重写Activity的onConfigurationChanged(Configuration newConfig)方法,该方法是一个基于回调的事件处理方法。
13.Android的消息传递机制是另一种形式的“事件处理”,这种机制主要是为了解决Android应用的多线程问题。
14.Handler类的主要作用有两个:在新启动的线程中发送消息;在主线程中获处理消息。
Handler包含如下方法用于发送、处理消息:
void handleMessage(Message msg):处理消息的方法。该方法通常用于被重写。
final boolean hasMessage(int What):检查消息队列中是否包含what属性为指定值的消息。
final boolean hasMessage(int What, Object object):检查消息队列中是否包含what属性为指定值且object属性为指定对象的消息。
多个重载的Message obtainMessage():获取消息。
sendEmptyMessage(int waht):发送空消息。
final boolean sendEmptyMessageDelayed(int what, long delayMillis):指定多少毫秒之后发送空消息。
final boolean sendMessage(Message msg):立即发送消息。
final boolean sendMessageDelayed(Message msg, long delayMillis):指定多少毫秒之后发送消息。
15.TimerTask对象的本质就是启动一条新线程,handleMessage(Message msg)方法位于主线程。
十六、GPS应用开发:
1.GPS定位系统由三部分组成,即由GPS卫星组成的空间部分,若干地面站组成的控制部分和普通用户手中的接收机(硬件支持GPS功能)这三个部分。
2.Android为支持GPS提供了LocationManager,通过LocationManager类及其他几个辅助类,所有GPS定位相关的服务、对象都将由该类的对象来产生。
3.掌握LocationManager、LocationProvider与LocationListener等API的功能和用法,就可以通过它们来监听、获取android系统中的GPS定位信息。
4.Location:它是一个代表位置信息的抽象类,提供了多种方法获取定位信息。
5.获取GPS定位信息的通用步骤为:
1.获取系统的LocationManager对象
2.使用LocationManager,通过指定LocationProvider来获取定位信息,定位信息由Location对象来表示。
3.从Location对象中获取定位信息。
6.LocationManager提供了一个addProximityAlert(...)方法,该方法用于添加一个临近警告。
十七、使用Google Map服务:
1、Google提供了大量的在线服务,比如Google Map、Google地球、Google街景、Google天气预报等。
2.把上一章获得的GPS信息与本章的Map应用结合起来,可以非常方便地开发出定位、导航等应用程序。
3.调用Google Map的准备:
1.Android系统默认并不支持调用Google Map,需要获取Map API Key。
2.Android SDK默认并不支持Google Map API,为了得到支持Google Map的SDK,必须为Android SDK增加相应的插件。
4.为了在Android平台上调用Google Map服务,Google Map插件提供了一个MapView。
5.MapView的getController()方法会返回该MapView所关联的MapController对象,MapController可对该MapView进行控制,比如控制地图定位到指定位置或控制地图放大、缩小等。
6.在Android应用中调用Google Map服务主要依赖于MapView、MapController、GeoPoint这三个API来开发Android的Map应用。
7.根据经度、纬度在Google Map上定位的步骤如下:
1.获取MapView对应的MapController对象。
2.根据程序获取的经度、纬度值创建GeoPoint对象。
3.调用MapView所关联的MapController对象的animateTo(GeoPoint point)方法定位到指定位置。
4.必须继承MapActivity
8.通过Overlay在Google Map的指定地理位置绘制图片需要如下三步:
1.获取MapView上屏幕坐标与经纬度坐标之间的投影关系。
2.调用Projection的toPixels方法把经纬度坐标转换为屏幕坐标。
3.调用Canvas的drawBitmap方法在屏幕的指定位置绘制图片。
9.把前面介绍的GPS定位与这里的Google Map结合起来,可以非常方便地开发出GPS导航应用。
10.根据地址定位:结合Android的地址解析服务...