当前位置:  编程技术>移动开发

android开发教程之handler异步更新ui

    来源: 互联网  发布时间:2014-10-22

    本文导语:  其实文字游戏程序很简单,就是一个view和一个Activity,在利用下handier和postInvalidate()更新UI 调用Handler.post(Runnable r)方法,Runnable运行在UI所在线程,所以可以直接调用View.invalidate() 代码如下:packagecom.Test.androidtest; importandroid.app.Activi...

其实文字游戏程序很简单,就是一个view和一个Activity,在利用下handier和postInvalidate()更新UI

调用Handler.post(Runnable r)方法,Runnable运行在UI所在线程,所以可以直接调用View.invalidate()

代码如下:

packagecom.Test.androidtest;

importandroid.app.Activity;
importandroid.content.Context;
importandroid.graphics.Canvas;
importandroid.graphics.Color;
importandroid.graphics.Paint;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.view.View;

publicclassTestHandlerextendsActivity{
privateMyViewmyView;
privateHandlermHandler;
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
myView=newMyView(this);
mHandler=newHandler();
mHandler.post(newRunnable(){
@Override
publicvoidrun(){
myView.invalidate();
mHandler.postDelayed(this,5);
}
});
setContentView(myView);27}

classMyViewextendsView{30privatefloatx=0f;31publicMyView(Contextcontext){
super(context);33
}
protectedvoidonDraw(Canvascanvas){
super.onDraw(canvas);37x+=1;
PaintmPaint=newPaint();
mPaint.setColor(Color.BLUE);
canvas.drawRect(x,
,x+40,80,mPaint);41}

}
}

在新线程里更新UI,可以直接postInvalidate()

代码如下:

publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);

myView=newMyView(this);
this.setContentView(this.myView);
newThread(newmyThread()).start();
}

classmyThreadimplementsRunnable{
publicvoidrun(){
while(!Thread.currentThread().isInterrupted()){
try{
myView.postInvalidate();
Thread.sleep(100);
}catch(InterruptedExceptione){
Thread.currentThread().interrupt();
}
}
}
}


    
 
 

您可能感兴趣的文章:

  • 异步 HTTP 客户端开发包 android-async-http
  • Android加载对话框同时异步执行实现方法
  • android在异步任务中关闭Cursor的代码方法
  • Android中BroadcastReceiver(异步接收广播Intent)的使用
  • Android 异步加载图片的实例代码
  • android异步请求服务器数据示例
  • Android 异步获取网络图片并处理导致内存溢出问题解决方法
  • android开发教程之handle实现多线程和异步处理
  • android异步加载图片并缓存到本地实现方法
  • Android多线程及异步处理问题详细探讨
  • Android 异步加载图片分析总结
  • android异步任务设计思详解(AsyncTask)
  • android开发教程之android的handler使用方法
  • android使用handler ui线程和子线程通讯更新ui示例
  • Handler与Android多线程详解
  • Android多线程处理机制中的Handler使用介绍
  • Android Handler的详细介绍
  • Android Handler主线程和一般线程通信的应用分析
  • Android Handler之消息循环的深入解析
  • 深入Android Handler与线程间通信ITC的详解
  • android Handler详细使用方法实例
  • android的消息处理机制(图文+源码分析)—Looper/Handler/Message
  • Android开发笔记之:Handler Runnable与Thread的区别详解
  • Android消息处理机制Looper和Handler详解
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton
  • Android 将 android view 的位置设为右下角的解决方法
  • Android 2D游戏引擎 Android Angle


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3