SurfaceView を拡張して Runnable を実装し、アクティビティ クラスの contentView() を surfaceview クラスのインスタンスに設定するクラスを呼び出すアクティビティがあります。アクティビティを最小限に抑えた後、スレッドを一時停止して破棄します。
public void pause(){
running = false;
while(true){
try{
renderThread.join();
break;
}catch(InterruptedException e){
//retry
}
}
}
アクティビティが再開したら、スレッドを再作成します。
public void resume(){
running = true;
renderThread = new Thread(this);
renderThread.start();
}
これらは onPause() および onResume() アクティビティ メソッド内で呼び出されることに注意してください。
public void run(){
while(running){//thred loop
if(!holder.getSurface().isValid())
continue;
if(puzzleDrawn!=true) {
canvas = holder.lockCanvas();
drawPuzzle(canvas);
holder.unlockCanvasAndPost(canvas);
}
}
}
public void drawPuzzle(canvas){
//draws on canvas
}
アプリケーションを再度開いてみると、黒い画面が表示されます。drawPuzzle(canvas) メソッドを一度だけ描画する必要があります。任意のヒント?
さらに情報が必要な場合はお知らせください。ありがとう