Android平台技术总结_隋文东

Android平台技术总结_隋文东

ID:38175640

大小:36.50 KB

页数:3页

时间:2019-05-24

Android平台技术总结_隋文东_第1页
Android平台技术总结_隋文东_第2页
Android平台技术总结_隋文东_第3页
资源描述:

《Android平台技术总结_隋文东》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Android平台技术总结——Timer的应用1.Java中Timer的使用方法packagecom.ray.test;importjava.util.Timer;importjava.util.TimerTask;importandroid.app.Activity;importandroid.os.Bundle;publicclassJavaTimerextendsActivity{Timertimer=newTimer();TimerTasktask=newTimerTask(){publicvoidrun(

2、){setTitle("hearme?");}};publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);timer.schedule(task,10000);}}2.Android平台上Timer的使用方法packagecom.ray.test;importjava.util.Timer;importjava.util.TimerTask;import

3、android.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;publicclassTestTimerextendsActivity{Timertimer=newTimer();Handlerhandler=newHandler(){publicvoidhandleMessage(Messagemsg){switch(msg.what){case1:setTitle("hearme?");

4、break;}super.handleMessage(msg);}};TimerTasktask=newTimerTask(){publicvoidrun(){Messagemessage=newMessage();message.what=1;handler.sendMessage(message);}};publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.m

5、ain);timer.schedule(task,10000);}}1.Java和Android平台上使用Timer的差别点在Java的代码中可以直接调用timer的schedule系列方法,就会自动的在一个新的线程中实现TimerTask的功能。但是在Android平台上,如果要在Timer中进行UI方面的操作时,在调用schedule系列方法后,而需要借助一个handler来接收TimerTask发送过来的Message信息,再由handler来执行实际的功能。2.差别点产生的机制和原理当第一次启动一个Andr

6、oid程序时,Android会自动创建一个称为“main”主线程的线程。这个主线程(也称为UI线程)很重要,因为它负责把事件分派到相应的控件,其中就包括屏幕绘图事件,它同样是用户与Andriod控件交互的线程。比如,当你在屏幕上按下一个按钮后,UI线程会把这个事件分发给刚按得那个按钮,紧接着按钮设置它自身为被按下状态并向事件队列发送一个无效(invalidate)请求。UI线程会把这个请求移出事件队列并通知按钮在屏幕上重新绘制自身。Android的UI操作必须在这个UI线程中执行,因此如果单纯的使用的Timer来操

7、作UI画面的话就会违背这个线程安全的原则,平台自动的将其屏蔽掉。但是handler是生存在UI线程中的,所以如果使用handler来操作UI就不会产生问题。基于这个原理我们将本来用来进行实际功能操作的TimerTask改成,只负责发送Message信号给handler,再由handler来执行具体的内容。1.Android平台上使用Timer需要注意的几点地方1.使用Timer的时候发送的Message应该尽量使用EmptyMessage,这样可以减少内存的占用量,并且不需要资源的回收。2.使用Timer的时候尽量

8、不要频繁的刷新屏幕,否者会使CPU的占用率过高,因此其它线程无法正常抢占CUP的资源。3.Timer的使用结束时,一定要调用cancel方法,否者会让系统误以为Timer还在使用中,影响系统资源的回收。4.Timer中执行的内容不要过多,否则会阻塞UI进程,导致画面刷新的不连续。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。