动时,就创建了一个
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 的应用程序 的生命周期是被