欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Handler理解

发布时间:2025/3/20 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Handler理解 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。常用的方法是利用Handler来实现UI线程的更新的。

 

package com.handler;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.view.View;

public class TestView extends View {
    float x = 40;
    public TestView(Context context) {
         super(context);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        x+=5;
        Paint mPaint = new Paint();
        mPaint.setAntiAlias(true);
        mPaint.setColor(Color.GREEN);
        canvas.drawCircle(x, 100, 100, mPaint);
    }
}
 

public class TestHandler extends Activity { 
     protected static final int GUIUPDATEIDENTIFIER = 0x101;  
     TestView myView = null;  
     Handler myHandler = new Handler() { 
          public void handleMessage(Message msg) {  
               switch (msg.what) {  
                    case TestHandler.GUIUPDATEIDENTIFIER:  
                         myView.invalidate(); 
                         break;  
               }  
               super.handleMessage(msg);  
          }  
     }; 
     public void onCreate(Bundle savedInstanceState) {  
          super.onCreate(savedInstanceState);  
          this.requestWindowFeature(Window.FEATURE_NO_TITLE);  
          this.myBounceView = new BounceView(this); 
          this.setContentView(this.myBounceView);  
          new Thread(new TestThread()).start(); 
     }  
     class TestThread implements Runnable {  
          public void run() { 
               while (!Thread.currentThread().isInterrupted()) {   
                    Message message = new Message();  
                    message.what = TestHandler.GUIUPDATEIDENTIFIER;  
                    TestHandler.this.myHandler.sendMessage(message);  
                    try {  
                         Thread.sleep(100);   
                    } catch (InterruptedException e) {  
                         Thread.currentThread().interrupt();  
                    }  
               }  
          }  
     }  
}

转载于:https://www.cnblogs.com/wzh206/archive/2010/05/15/1736329.html

总结

以上是生活随笔为你收集整理的Handler理解的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。