1

surfaceview のスレッドに問題があります。電話をロックしたときに onPause/onResume する方法がわかりません。私が何をしても、電話をロック/ロック解除した後、スレッドは応答しません。

アクティビティでは:

@Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        surfaceView.SurfaceView_OnResume();
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        surfaceView.SurfaceView_OnPause();

    }

表面図では

    public void SurfaceView_OnResume() {
            if (null != surfaceViewThread) {

                surfaceViewThread.setRunning(true);
                surfaceViewThread.notify();
            }

        }

        public void MySurfaceView_OnPause() {           
            surfaceViewThread.setRunning(false);

        }

@Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        // TODO Auto-generated method stub
        boolean retry = true;
        myGameThread.setRunning(false);
        while (retry) {
            try {
                myGameThread.join();
                retry = false;
            } catch (InterruptedException e) {
            }
        }
    }

スレッドで:

public void setRunning(boolean run) {
        runFlag = run;

    }
4

1 に答える 1