zoukankan      html  css  js  c++  java
  • 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();  
                        }  
                   }  
              }  
         }  
    }

  • 相关阅读:
    jquery toggle(listenerOdd, listenerEven)
    struts quick start
    hdu 1518 Square (dfs)
    hdu 2544 最短路 (最短路径)
    hdu 1754 I Hate It (线段树)
    hdu 1856 More is better (并查集)
    hdu 1358 Period (KMP)
    hdu 2616 Kill the monster (DFS)
    hdu 2579 Dating with girls(2) (bfs)
    zoj 2110 Tempter of the Bone (dfs)
  • 原文地址:https://www.cnblogs.com/wzh206/p/1736329.html
Copyright © 2011-2022 走看看