日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Handler理解

發(fā)布時(shí)間:2025/3/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Handler理解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Android UI操作并不是線程安全的并且這些操作必須在UI線程中執(zhí)行。常用的方法是利用Handler來(lái)實(shí)現(xiàn)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();??
??????????????????? }??
?????????????? }??
????????? }??
???? }??
}

轉(zhuǎn)載于:https://www.cnblogs.com/wzh206/archive/2010/05/15/1736329.html

總結(jié)

以上是生活随笔為你收集整理的Handler理解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。