在快速点击时,先前的活动变为前景

时间:2013-01-31 19:29:18

标签: java android android-intent android-activity

我有一种情况,其中活动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正在运行)。

我的猜测是B完成并显示A,在C有机会发射之前通过敲击引起焦点。这可能是问题的原因吗?如果不是,那是什么?我怎样才能防止这种情况发生,并确保即使用户疯狂地使用C也会将其带到前面?

1 个答案:

答案 0 :(得分:0)

我不确定你的代码和xml是如何构造的,但是一个简单的解决方法是在调用onStop之后使活动A运行的布局不可点击。

我建议的另一件事是检查B完成的活动和C的开始。你是否在C开始前在B上结束了? C是否需要加载导致延迟的大量数据?如果是这样,请考虑等待部分或全部重型数据加载然后启动C。

没有任何源代码,没有其他说法。