アクティビティ A がアクティビティ B を開始し、次に B がアクティビティ C を開始して終了する状況があります。
Intent intent = new Intent(getBaseContext(), Main.class);
intent.putExtra("GAME_TYPE", Game.MULTIPLAYER);
intent.putExtra("GAME_DATA", data.toString());
intent.putExtra("GAME_ID", gameId);
startActivity(intent);
finish();
これは通常は正常に機能し、C が前面に表示されます。ユーザーが C を閉じると、A が表示されます。
B が終了し、C が起動している間にユーザーが画面を繰り返しタップすると、問題が発生します。これにより、A がフォアグラウンドに移動し、C がバックグラウンドで正常に起動されたようです (LogCat 出力は、C が実行中であることを示しています)。
私の推測では、C が起動する前に、B が終了して A が表示され、それがタップによってフォーカスされていると思われます。これが問題の原因である可能性はありますか? そうでない場合、何ですか?これが起こらないようにし、ユーザーが乱暴にタップしても C が前面に表示されるようにするにはどうすればよいですか?