public void surfaceDestroyed(SurfaceHolder holder) { Log.d("ssidang", "surfaceDestroyed()"); // 렌더링 스레드를 죽입니다. renderThread.shutdown(); this.renderThread = null; }
@Override // runs on RenderThread public void handleMessage(Message msg) { int what = msg.what; // Log.d(TAG, "RenderHandler [" + this + "]: what=" + what); RenderThread renderThread = mWeakRenderThread.get(); if (renderThread == null) { Log.w(TAG, "RenderHandler.handleMessage: weak ref is null"); return; } switch (what) { case MSG_SURFACE_CREATED: renderThread.surfaceCreated(); break; case MSG_SURFACE_CHANGED: renderThread.surfaceChanged(msg.arg1, msg.arg2); break; case MSG_DO_FRAME: long timestamp = (((long) msg.arg1) << 32) | (((long) msg.arg2) & 0xffffffffL); renderThread.doFrame(timestamp); break; case MSG_SHUTDOWN: renderThread.shutdown(); break; default: throw new RuntimeException("unknown message " + what); } }