没有合适的资源?快使用搜索试试~ 我知道了~
Android学习笔记(三一):线程:Message和Runnable.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 134 浏览量
2022-07-08
18:08:27
上传
评论
收藏 67KB DOC 举报
温馨提示
试读
9页
Android学习笔记(三一):线程:Message和Runnable
资源推荐
资源详情
资源评论
Android
学习笔记(三一):线程:
Message
和
Runnable
分类: 读书笔记 Andriod2011-04-28 17:26 5482 人阅读 评论(22) 收藏 举报
程序需要相应用户的操作,最要能在 200ms(0.2s)之内,如果超过 5 秒没有反应,
ActivityManager 会没有提示就 kill 了 activity。然而,activity 可能真的需要时间来进行处理,
这往往会用到后台线程-background thread。后台线程可以安全 地和 UI 线程进行交互,其
中后台线程是不能修改 UI 的。我不太确切知晓“不能修改 UI”到何种程度,例如在下面的例
子进度条状态的修改是允许的,在复杂的例子中可能会出现问题,例如两个后台线程都要处
理同一个 widget,可能会有不可预知的情况出现,然而就编程而言,确实不应当如此处理,
后台进程应避免涉及 UI 的处理,UI 的归 UI,处理的规处理。这样才是良好的编程风格或者
是一种编程原则。
通过创建一个 Handler 子类的对象,每个 acvivity 只需一个 Handler 对象。后台进程可通过
两种方式 Handler 进行通信:message 和 Runnable 对象,其结果实质都是将在 Handler
的队列中放入内容,message 是放置信息,可以传递一些参数,Handler 获取这些信息并
将判度如何处理,而 Runnable 则是直接给出处理的方法。队列就是依次执行,Handler 会
处理完一个消息或者执行完某个处理在进行下一步,这样不会出现多个线程同时要求进行
UI 处理而引发的混乱现象。
这些队列中的内容(无论 Message 还是 Runnable)可以要求马上执行,延迟一定时间执
行或者指定某个时刻执行,如果将他们放置在队列头,则表示具有最高有限级别,立即执行。
这些函数包括有:sendMessage(), sendMessageAtFrontOfQueue(), sendMessageAtTime(),
sendMessageDelayed()以及用于在队列中加入 Runnable 的 post(),
postAtFrontOfQueue(), postAtTime(),postDelay()。
一般而言,推荐是 Messge 方式,这样程序设计得可以更为灵活,而 Runnable 在某些简单
明确的方式中使用。我们将通过三种方法编写一个小例子来学习。这个例子是一个进度条,
每隔 1 秒,进度条步进 5,如果 acvity 停止时,进度条归零。
Android XML :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout ...... />
<ProgressBar android:id="@+id/c15_progress"
style="?android:attr/progressBarStyleHorizontal" <!-- 这表明采用传统水平进
度条的方式-->
android:layout_width="fill_parent"
资源评论
oligaga
- 粉丝: 50
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功