0

私はAndroid用のアプリを開発しています.ホームボタンを押すと音楽が一時停止します(onPause)。これで問題なく動作しますが、ゲームを再度起動しようとすると、onResume、onRestart、onStart、onRestoreInstanceState、および onCreate が呼び出されず、アプリケーションが応答していないことがわかります。LogCat に表示される例外はありません...そのため、何が起こっているのかわかりません。なぜこれが当てはまるのかについて、誰か提案はありますか?

-EDIT- アプリケーションが一時停止すると、LogCat に次のエラーが表示されます。

04-16 20:09:32.659: ERROR/ActivityManager(66): 理由: インテントのブロードキャスト

私の onPause() コード:

    public void onPause() {
    super.onPause();            
    panel.mediaPlayer.pause();
    panel.thread.running=false;
}

メイン アプリケーション スレッド:

        public void run() {
        running = true;
        while(running) {
            //new Canvas.
            Canvas c = null;
            //Update information
            update();
            //Draw everything to screen
            try {
                //Gets the canvas from the surfaceHolder.
                c = surfaceHolder.lockCanvas(null);
                synchronized(surfaceHolder) {
                    //draw to the canvas                    
                    doDraw(c);
                    try {
                        Thread.sleep(gameSpeed);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                }
            } finally {
                if (c != null) {
                    surfaceHolder.unlockCanvasAndPost(c);
                }
            }
        }

メディアプレーヤー:

            mediaPlayer = new MediaPlayer();
    sublime = context.getResources().openRawResourceFd(R.raw.sublime);

    try {
        mediaPlayer.setLooping(true);
        mediaPlayer.setDataSource(sublime.getFileDescriptor(), sublime.getStartOffset(), sublime.getLength());
        mediaPlayer.prepare();

    } catch (IllegalArgumentException e1) {

    } catch (IllegalStateException e1) {

    } catch (IOException e1) {

    } 
    mediaPlayer.start();
4

2 に答える 2

2

「アプリケーションが応答していません」というエラーが発生した場合は、メインアプリケーションスレッドでのアクティビティに時間がかかりすぎていることを意味します。メインアプリケーションスレッドで実行しているすべての作業を特定し、遅いものをバックグラウンドスレッドまたはに移行しますAsyncTask

于 2011-04-16T21:20:37.143 に答える
0

私のエラーが何であるかを知っていると思います:SurfaceViewでonSizeChangedが呼び出されたときに不要なコードが実行されています(アクティビティを一時停止して何か他のものが表示されたときに発生する可能性があります)...チェックしますアウト。みんな、ありがとう!

于 2011-04-18T04:33:45.770 に答える