线程(android)

在java中我们学习了线程,线程,是进程的一个单位,在程序要运行时,会开启线程,运行程序,我们要创建线程就需要我们去继承接口Thread或者实现Runable接口,然后重写run方法,在调用Thread类的start()方法来开启线程。而在android中同样也是如此.但是在android中,多了一个限制:只有主线程才能修改界面。当应用程序启动时,Android首先会开启一个主线程 (即UI线程),主线程管理界面中的UI控件,进行事件分发,我们创建的线程是没有办法直接修改界面。所以我们就需要去使用Handler类来帮助我们修改界面

Handler类:

主要接受子线程发送的数据,并用此数据配合主线程更新UI。

写一个handler类,继承Handler,重写handlerMessage()方法,然后在该方法里面进行修改界面的操作。

使用Message类的对象来传递消息,然后在handlerMessage()中接收信息,进行修改界面的操作。

实战演练:

在界面上实现会动的小球,每一次点击一下界面,就出现一个小球;

1,实现一个自定义组件,添加到窗体上;在自定义组件中实现每点击一次就可以添加一个小球,把小球对象存在数组中;

2.实现一个线程类,把我们的数组中的对象取出来,在线程的run方法中画出来;并且在实例化一个Message对象,把我们的位图Bitmap发送出去;

3.实现我们的Handler类,重写handlerMessage()方法;接收我们Message传的消息。

界面接收我们的消息的之后,把位图画在界面上就可以了。

这样一个简单地线程游戏就实现了;

最新文章

  1. 【知识必备】RxJava+Retrofit二次封装最佳结合体验,打造懒人封装框架~
  2. php json_encode数据格式化
  3. ZOJ Problem Set - 1338 Up and Down Sequences 解释 ac代码
  4. Quartz 之Quartz Cron表达式
  5. oracle 11g express 修改oem端口
  6. react绑定事件
  7. UVA 10765 Doves and bombs(双连通分量)
  8. 访问项目时,不能自动加载index.php文件
  9. Cocos2d-x Lua 阅读Csv文件,使用数据更方便
  10. Relationship between frequency domain and spatial domain in digital images
  11. [C语言]进阶|程序结构
  12. ssd制作数据和训练
  13. [C#]App.Config
  14. (转)MySQL 加锁处理分析
  15. hdu 1251 统计难题(字典树)
  16. 【POJ】2151:Check the difficulty of problems【概率DP】
  17. redis与lua
  18. Spring Boot 2.x 启动全过程源码分析
  19. 杂项-数学软件:Mathematica
  20. Android Preference 设置偏好全攻略

热门文章

  1. Atitit.反编译apk android源码以及防止反编译apk
  2. django中html过滤器filter
  3. Spark基本工作流程及YARN cluster模式原理(读书笔记)
  4. 透明ActionBar
  5. 如何正确的使用json?如何在.Net中使用json?
  6. Ubuntu安装Svn,提供http访问
  7. C#创建委托实例
  8. poj1006 / hdu1370 Biorhythms (中国剩余定理)
  9. 【原】移动web页面使用字体的思考
  10. 【CSS】创建布局