サイトのトップへ戻る

AndEngineドキュメント 日本語訳

Part 7. ネイティブメソッドを上書きして、バックキーが押された時の挙動を制御します:

警告: 今この記事を読んでいるあなたが、前ページの記事を2012年1月21日以前に読んで使用している場合、 パート4、パート5、パート6の記事は更新されてさらにリファクタされているので注意してください。 (それらの記事にもう一度目を通して、コードを更新してください。さもないと多くの問題やエラーが発生するでしょう)。これらの更新は必須です!



1. ネイティブメソッドを上書きする:
ゲームを終了した後にactivityを確実に破棄するには、onDestroy メソッドを上書きする必要があります。 なぜかと言うと、いくつかの端末ではゲームを終了した後でもactivityを保持し続けるからでです。そうした仕様によっておかしい動作をすることがあります。 activityを確実に破棄するには、activity 内でonDestroy を上書きし、 System.exit(0)を呼び出します;
@Override
protected void onDestroy()
{
	super.onDestroy();
        System.exit(0);	
}


2. バックキーが押された時の挙動を制御する:
たぶん気づいていたかもしれませんが、scenesを作成する際にはonBackKeyPressed()と呼ばれる未実装メソッドを追加する必要がありました - それでは、そのonBackKeyPressed()を使ってみましょう。 activity内で  onKeyDown メソッドを上書きします。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{  
    if (keyCode == KeyEvent.KEYCODE_BACK)
    {
        SceneManager.getInstance().getCurrentScene().onBackKeyPressed();
    }
    return false; 
}

こうすることで、電話の戻るボタンが押された後に実行されるアクションコードが、最後に動作します。 

前の記事 次の記事