package com.dk.view.drop; import android.graphics.Canvas; import android.view.SurfaceHolder; /** * The thead will finish when you called setRunning(false) or Explosion ended. * * @author Peter.Ding * */ public class ExplosionUpdateThread extends Thread { private SurfaceHolder mHolder; private DropCover mDropCover; private boolean isRunning = false; public ExplosionUpdateThread(SurfaceHolder holder, DropCover dropCover) { mHolder = holder; mDropCover = dropCover; } public void setRunning(boolean isRunning) { this.isRunning = isRunning; } @Override public void run() { boolean isAlive = true; while (isRunning && isAlive) { Canvas canvas = mHolder.lockCanvas(); if (canvas != null) { isAlive = mDropCover.render(canvas); mHolder.unlockCanvasAndPost(canvas); mDropCover.update(); } } mDropCover.clearViews(); } }