android开发之线程
2024-10-14 04:34:20
线程(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传的消息。
界面接收我们的消息的之后,把位图画在界面上就可以了。
这样一个简单地线程游戏就实现了;
最新文章
- 【知识必备】RxJava+Retrofit二次封装最佳结合体验,打造懒人封装框架~
- php json_encode数据格式化
- ZOJ Problem Set - 1338 Up and Down Sequences 解释 ac代码
- Quartz 之Quartz Cron表达式
- oracle 11g express 修改oem端口
- react绑定事件
- UVA 10765 Doves and bombs(双连通分量)
- 访问项目时,不能自动加载index.php文件
- Cocos2d-x Lua 阅读Csv文件,使用数据更方便
- Relationship between frequency domain and spatial domain in digital images
- [C语言]进阶|程序结构
- ssd制作数据和训练
- [C#]App.Config
- (转)MySQL 加锁处理分析
- hdu 1251 统计难题(字典树)
- 【POJ】2151:Check the difficulty of problems【概率DP】
- redis与lua
- Spring Boot 2.x 启动全过程源码分析
- 杂项-数学软件:Mathematica
- Android Preference 设置偏好全攻略