Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。
Android程序中可以使用的界面刷新方法有两种,分别是利用Handler和利用postInvalidate()来实现在线程中刷新界面。
利用Handler刷新界面
实例化一个Handler对象,并重写handleMessage方法调用invalidate()实现界面刷新;而在线程中通过sendMessage发送界面更新消息。
// 在onCreate()中开启线程
new Thread(new GameThread()).start();
// 实例化一个handler
Handler myHandler = new Handler()
{
//接收到消息后处理
public void handleMessage(Message msg)
{
switch (msg.what)
{
case Activity01.REFRESH:
mGameView.invalidate(); //刷新界面
break;
}
super.handleMessage(msg);
}
};
class GameThread implements Runnable
{
public void run()
{
while (!Thread.currentThread().isInterrupted())
{
Message message = new Message();
message.what = Activity01.REFRESH;
//发送消息
Activity01.this.myHandler.sendMessage(message);
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
Thread.currentThread().interrupt();
}
}
}
}
使用postInvalidate()刷新界面
使用postInvalidate则比较简单,不需要handler,直接在线程中调用postInvalidate即可。
class GameThread implements Runnable
{
public void run()
{
while (!Thread.currentThread().isInterrupted())
{
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
Thread.currentThread().interrupt();
}
//使用postInvalidate可以直接在线程中更新界面
mGameView.postInvalidate();
}
}
}
分享到:
相关推荐
通常在开发界面时,总有findViewById的重复工作,DataBinding可以免去这些操作。同时,DataBinding还可以直接在xml中绑定数据,免去类似setText的操作,让数据来驱动UI刷新。 Jetpack笔记代码 使用 在app/build....
滑动菜单 下拉刷新 ExpandableListView适配器配置及使用
安卓毕业设计加源码 Parking-Services-based-on-...系统设计文档与源程序的编写方法应符合国家、行业标准。 答辩通过 项目基本完成,停车端略微简陋,可以添加更多新功能 车位管理界面 车牌识别 把刷新改成socket
Android的ListView是应用最广的一个组件,功能强大,扩展性灵活(不局限于ListView本身一个类),前面的文章有介绍分组,拖拽,3D立体,游标,圆角,而今天我们要介绍的是另外一个扩展ListView:下拉刷新的ListView。...
本篇是对Android中onConfigurationChanged的使用进行了详细的分析介绍。需要的朋友参考下
Google近期在Udacity上发布了Android性能优化的在线课程,分别从渲染,运算与内存,电量几个方面介绍了如何去优化性能,这些课程是Google之前在Youtube上发布的Android性能优化典范专题课程的细化与补充。...
5.Android 界面刷新 16 6.Cursor 17 7.Activity透明 20 9.发送短信 20 10.发送彩信 20 11.注册一个BroadcastReceiver 21 12.定义ContentObserver,监听某个数据表 21 13.获得手机UA 21 14.清空手机cookies ...
"Android 手机与 PC 无线投屏技术" Android 手机与 PC 无线投屏技术是近年来备受关注的一项技术,特别是在华为荣耀手机和小米手机推出多屏协同功能后,其他品牌手机用户也希望能实现类似的操作。实际上,Windows 10...
•从熟悉的桌面式界面查看,创建和编辑复杂的办公文档 •完全兼容Microsoft格式,包括DOC,DOCX,DOCM,XLS,XLSX,XLSM,PPT,PPTX,PPS,PPSX,PPTM,PPSM •支持PDF文件,包括PDF相机扫描和导出为PDF。 •对RTF...