0

2つのアクティビティがあります。最初のアクティビティは一時停止ボタンのあるゲーム画面で、2番目のアクティビティは再開と再開ボタンのあるゲーム画面です。ゲーム画面上で一時停止ボタンをクリックすると、2番目のアクティビティに移動します。ここから、再起動ボタンをクリックすると、最初に終了します。アクティビティ(ゲーム画面)と新しいゲームを開始したいので、これは私の問題です最初のアクティビティを終了する方法私を助けてください

4

3 に答える 3

3

提案は、すべてのアクティビティのブロードキャストレシーバーをonReceive()の「finish()」に登録することです。終了したいときはいつでも、すべてのアクティビティをシャットダウンする必要があることを示すインテントを渡すことができます。 onDestroy()メソッドでレシーバーの「登録解除」を必ず行ってください。

このようなもの

            @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        IntentFilter filter = new IntentFilter();
        filter.addAction("end");
        receiver = new BroadcastReceiver() {

            @Override
            public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub
                finish();
            }
        };
        registerReceiver(receiver, filter);
}


  protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
         unregisterReceiver(receiver);
    }

そして、あなたが別の活動からこれを終えたいときは、これをしてください

Intent i = new Intent("end");
                sendBroadcast(i);
于 2013-03-14T09:04:03.403 に答える
1

これにより、すべての上位アクティビティが強制終了され、新しいアクティビティNewGameが開始されます。

Intent intent = new Intent(getApplicationContext(), NewGame.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
于 2013-03-14T09:01:07.500 に答える
1

オプション1: フラグメントを使用する

オプション2: 最初のアクティビティから使用startActivityForResultし、2番目のアクティビティが終了したときにonActivityResult。最初のアクティビティを終了してからゲームを開始します。

オプション3: ブロードキャストメッセージを送信し、最初のアクティビティでそれを受信して​​終了します。

他のオプションがあるかもしれません。すぐに頭に浮かんだいくつかのオプションを書き留めてください。もし私があなたなら、オプション1を使います

于 2013-03-14T09:02:56.240 に答える