我有一种情况,活动 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,通过点击使 A 成为焦点。这可能是问题的原因吗?如果不是,那是什么?我怎样才能防止这种情况发生并确保即使用户疯狂地敲击也将 C 带到前面?