安卓的事件处理机制

来源:互联网 发布:网络直播吃饭 编辑:程序博客网 时间:2024/05/16 04:50

1、基于监听的事件处理--委托式

主要做法:为组件绑定特定的事件监听器。
Event Source(事件源)
Event(事件)
Event Listener(事件监听器)
事件监听器:
1)内部类
2)匿名内部类
3)外部类
4)Activity本身
5)绑定到标签

2、基于回调的事件处理--自主式

主要做法:重写组件特定的回调方法,或Activity的回调方法。
回调机制就是当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件。
Java是一种静态语言,我们无法为某个对象动态地添加方法,因此只能继承GUI组件类,并重写该类的
事件处理方法来实现。自定义View,重写事件处理方法。

事件传播:如果回调方法返回true,表明完成处理,不会继续传播。
传播顺序:绑定的事件监听器---回调方法---组件所在Activity。

3、响应系统设置的事件

应用随系统改变+系统随应用改变
Configuration类用于描述手机设备上的配置信息,包括用户特定的配置项,也包括系统的动态设备配置。

4、Handler消息传递机制

UI操作并不是线程安全的,即多个线程冰法操作UI组件,可能导致线程安全问题。为防止上述问题,Android规定:
只允许UI线程修改Activity里的UI组件。
通过Handler消息传递机制实现新线程操作UI组件。
(新线程发Msg,UI线程收Msg并操作UI组件)
UI线程适时处理Msg:重写Handler类中处理消息的方法,新线程发送Msg到与Handler相关的MsgQueue,而Handler
会不断从中获取消息并处理--回调。

5、异步任务(AsyncTask)

新线程不能更新UI组件的问题。与Handler类似的功能。适用于简单的异步处理,不需要借助线程与Handler。
AsyncTask<P,P,R>是一个抽象类,它定义了三个泛型类型:
Params:启动任务执行的输入参数的类型
Progress:后台任务完成的进度值的类型
Result:后台执行任务完成后返回结果的类型
步骤:创建子类;实现方法;调用子类实例的execute方法开始耗时任务。
0 0
原创粉丝点击