2

サーフェス ビュー内で実行可能なスレッドを使用してアニメーションを再生しています。アプリケーションを初めて実行すると、すべてが正常に動作し、アニメーションが適切に再生されます。戻る/ホーム ボタンを押してアプリケーションを再度開くと、アニメーションのない黒い画面が表示されますが、ログ キャット エントリを使用して確認したバックグラウンドで実行可能なスレッドが動作します。

また、戻るボタンを押すイベントをオーバーライドしていて、戻るボタンを押すイベント内で finish() が呼び出されます。

アプリケーションを再開したときに surfacecreated メソッドが呼び出されない理由を教えてください。

注:私が使用する場合

android.os.Process.killProcess(android.os.Process.myPid());

アプリケーションは、finish() メソッドの代わりに戻るボタン イベント内で、onresume イベントで適切に動作します。

前もってありがとう、ティム

4

1 に答える 1

0

と思います,SurfaceView クラスを拡張して surfaceChanged メソッドをリッスンする必要があります。そしてメソッドで再度描画します。コード:

class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback{  
        SurfaceHolder holder;
        public MySurfaceView(Context context) {  
            super(context); 
            holder = this.getHolder();
            holder.addCallback(this); 
        }  
        public void surfaceChanged(SurfaceHolder holder, int format, int width,  
                int height) {  
            //when surfaceChanged,i think you must make your view draw one time.

        }   
        public void surfaceCreated(SurfaceHolder holder) {  
            //surfaceCreated
        }    
        public void surfaceDestroyed(SurfaceHolder holder) {  
            //surfaceDestroyed
        }  

    } 

これがあなたを助けることを願っています。

于 2012-07-26T08:25:20.553 に答える