1

私のアプリケーションには、view を SurfaceView に設定する mainActivity があります。

アプリが起動し、正常に表示されます。ホームボタンを押します。-->onPause が呼び出され、Surfaceview が破棄され、Thread が適切に強制終了されます。アプリをもう一度クリックすると、OnResume が呼び出されず、何も起こらないので、実際には電話が動かなくなります。

新しいサーフェスを作成するたびに、新しいスレッドを作成します。

このコードに問題がある理由はわかりませんが、主に surfaceView で何かが誤って処理されているのではないかと疑っています。

助けてください!!

@Override
public void surfaceCreated(SurfaceHolder arg0) {
    // TODO Auto-generated method stub
    BounceLogger.logIt(this, "surfaceCreated");
    graphThread=new GraphUpdaterThread(mSurfaceHolder);
    graphThread.runThread();

}

@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
    // TODO Auto-generated method stub
    BounceLogger.logIt(this, "surfaceDestroyed");
    graphThread.stopThread();
    graphThread= null;
}






@Override
    public void onPause()
    {
        super.onPause();
        //handleProcessPaused();
        //mGsv.getThread().pauseThread();

        BounceLogger.logIt(this,"onPause()");        
    }

    @Override
    public void onResume()
    {
        super.onResume();
        //mGsv.getThread().resumeThread();
        //init();
        BounceLogger.logIt(this,"onResume()");      
    }
4

2 に答える 2

0

これのadb logcatを投稿できますか? エラーは onCreate() にある可能性があります。

onPause() が呼び出されると、それは surfaceDestoryed() を呼び出し、次に onDestroy() を呼び出すことができます。

アプリケーションを再度開くと、 onCreate() が再度呼び出される可能性があり、その時点でエラーが発生する可能性があり、それが onResume() が呼び出されない理由です。

logcats なしではデバッグが困難です。

于 2013-08-09T21:27:40.403 に答える