java - 快速点击时,先前的 Activity 会进入前台

标签 java android android-intent android-activity

我遇到这样一种情况, Activity A 启动了 Activity B,然后 B 启动了 Activity 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 也会被带到前面?

最佳答案

我不确定您的代码和 xml 的具体结构,但一个简单的解决方法是使 Activity A 正在运行的布局在调用 onStop 后不可单击。

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

没有源代码,就没什么可说的了。

关于java - 快速点击时,先前的 Activity 会进入前台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633632/

相关文章:

java - 如何使 eclipse neon 在包 View 中显示 git 分支?

java - Android getWindow 根据 Listpreference 设置我的 Activity 的背景

android - 如何从文件资源管理器在我的应用程序中打开单个图像

java - gitlab API gitlab4j Java更改默认分支

java - ViewPager + TabLayout 在每个 Activity 中都带有 NavigationDrawer - 问题

java - 多异常捕获子句中异常的静态类型是什么?

android - 打开/qemu.conf失败,错误: 2

android - 芝士方 block : enterAlways produces wrong layout

java - Android - Java - 发送 facebook 聊天消息的 Intent (facebook 禁用 xmpp)

android - 通过 Intent 启动浏览器,带有架构 "HTTP"(大写)错误的 url