background image

动时,就创建了一个

Looper 与 MessageQueue 对象,并且与前线程相绑

定.当在主线程使用

Handler 并创建该对象时,他会获得该Looper

Handler 对 象 发 送 消 息 有 两 种 方 式 : s e n d M e s s a g e . . .

 

/  Psot...但是最终调用的都是sendMessageA

tTime方法,该方法主要作用有两个:指定目标

Handler 对象把消

息放入到消息队列当中

Looper 中使用loop方法用于不断的循环监听

消息队列,看源码可知,监听消息队列并不是另外开一个线程来实现,

loop方法主要是,对消息进行分发,最终交给目标Handler

并由HandleMessage方法最终处理.

 

8、说说 mvc 模式的原理,它在 android 中的运用

   MVC(Model_view_contraller)

”模型_视图_控制器”。 MVC 应用程序总是由

这三个部分组成。

Event(事件)会导致 Controller 来改变 Model 或 View,

或者同时改变两者。只要

 Controller 改变了 Models 的数据或者属性,所

有 依 赖 的

View 都 会 自 动 更 新 。 类 似 的 , 只 要 Controller 改 变 了

View,View 会从潜在的 Model 中获取数据来刷新自己。View 重绘(刷

新)和内存泄露的的问题

1. View 的刷新:在需要刷新的地方,使用 handle.sendmessage 发送信息,然后在

handle 的 getmessage 里面执行 invaliate 或者 postinvaliate.

2. GC 内存泄露出现情况:

1.数据库的 cursor 没有关闭

2.构造 adapter 时,没有使用缓存 contentview 衍生 listview 的优化问题-----减

少 创 建

view 的 对 象 , 充 分 使 用 contentview, 可 以 使 用 一 静 态 类 来 优 化 处 理

getview 的过程/

3.Bitmap 对象不使用时采用 recycle()释放内存

4.activity 中的对象的生命周期大于 activity

调试方法

: DDMS==> HEAPSZIE==>dataobject==>[Total Size]

还有其他问题

,大家欢迎提出阿,可以是整体架构的,还有这个 Hal 层.

9、Activity 的生命周期

   和其他手机 平台 的应用 程序 一样,Android 的应用程序 的生命周期是被