private void draw() { mStartTime = System.currentTimeMillis(); SurfaceHolder holder = getSurfaceHolder(); Canvas canvas = null; try { canvas = holder.lockCanvas(); if (canvas != null) { backgroundRenderer.doDraw(canvas); // circularClockRenderer.doDraw(canvas); } } finally { if (canvas != null) holder.unlockCanvasAndPost(canvas); } mElapsed = System.currentTimeMillis() - mStartTime; mStartTime = System.currentTimeMillis(); handler.removeCallbacks(drawRunner); if (visible) { handler.postDelayed(drawRunner, 100); } }