0

アンドロイドでゲームを作っています。ゲームを一時停止し、(とにかく新しいアクティビティまたはダイアログを介して) 一時停止メニューを表示してから、ゲームを再開する必要があります。これは、スレッドを一時停止して再開する方法です。

public void pause() {
            isRunning = false;
            while (true) {
                try {
                    ourThread.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                break;
            }
            ourThread = null;
        }

public void resume() {
            isRunning = true;
            ourThread = new Thread(this);
            ourThread.start();
        }

これは、ホーム画面に移動すると完全に機能しますが、メニューを表示して操作する方法がわかりません。

4

2 に答える 2

1

ポップアップメニューの使用を検討しましたか? pause() で showPopup() を実行すると、何かを実行できます。次に、画面の任意の場所をクリックしてポップアップを閉じるか、おそらく onMenuItemClick で再開を設定できます

それは理にかなっていますか?

public void showPopup() {
    // Anchor popoup with layout to "center" menu
    RelativeLayout layout = (RelativeLayout) findViewById(R.id.menuLayout);
    PopupMenu popup = new PopupMenu(this, layout);
    popup.setOnMenuItemClickListener(this);
    popup.getMenuInflater().inflate(R.layout.menu, popup.getMenu());
    popup.show();
}

@Override
public void onMenuItemClick(MenuItem item) {
    dosomething();
            resume();

}
于 2013-01-23T11:23:30.980 に答える
0

デバイスのメニュー ボタンがクリックされたときに、pause() を呼び出します。

于 2013-01-23T11:25:12.447 に答える