サイトのトップへ戻る

AndEngineドキュメント 日本語訳

onResume、 onPause 、 onDestroyを制御する:

あなたは既にAndroid ライフサイクルについて理解している前提で話をします。 なぜこれらのメソッドが重要と考えられているのでしょうか? onResume とonPause が使用される最も一般的な目的は、音楽の再開や一時停止です。



1. 音楽の一時停止と再開を適切に行う:
ユーザーがホームボタンを押した後には音楽を一時停止させ、アプリケーションに戻ってきたら音楽を再開させるのは当然でしょう。 その処理をとても簡単に行うことができます。:
@Override
protected void onPause()
{
    super.onPause();
    if (this.isGameLoaded())
        music.pause();
}

@Override
protected synchronized void onResume()
{
    super.onResume();
    System.gc();
    if (this.isGameLoaded())
        music.play(); 
}

コード上でmusicと記載されている部分にはあなたが使用する music オブジェクトに書き換えます。 isGameLoaded() を実行してゲームが読み込まれているかどうかを確認することが重要です。 代わりとしてmusic オブジェクトがnullじゃないかどうかを確認することもできます。 どちらも同じ効果が得られますが、nullチェックをしないとNullPointnerExceptionが発生することがあります。



2. activityを破棄する:
activityを破棄する、言い換えればゲームを終了させるには、activity.finish()だけではなく他にも少し処理をしなければなりません。 - いくつかの端末によってはactivityが生存し続けるためです。activity を確実に破棄するには、 onDestroy().内でSystem.exit(0); を呼び出します。
@Override
protected void onDestroy()
{
    super.onDestroy();
        
    if (this.isGameLoaded())
    {
        System.exit(0);    
    }
}

ゲームが読み込まれているかどうかを確認することはとても重要です。そうしないとSamsung Galaxy S3のようないくつかの端末では、ゲームを開こうとした後にすぐに閉じられてしまうことがあります。