为什么 FLAG_ACTIVITY_CLEAR_TOP 不起作用?

2024-01-24

正如标题所说,为什么intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) or intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)行不通?

我有 3 项活动,比如说 A、B 和 C。

当我尝试使用代码从 C 启动 Activity A 时:

Intent i = new Intent(this, A.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

它只是启动 Activity A 但不会清除顶部。! -_-

我也尝试过使用setFlags().

我阅读了有关此问题的不同问题,但找不到正确的答案。 >_

有人请帮忙!

Edit

根据 @codeMagic 的要求,活动“A”中的 onBackPressed() 代码。

@Override
public void onBackPressed(){
    if(wvLogin.canGoBack())
        wvLogin.goBack();
    else
        super.onBackPressed();
}

从文档中FLAG_ACTIVITY_CLEAR_TOP http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP:

If set, 并且正在启动的活动已经在运行 当前任务,然后不要启动该实例的新实例 活动,其上的所有其他活动都将关闭并且 这个意图将作为一个传递给(现在在顶部)旧的活动 新意图。

正如您在评论中添加的,活动 A 在调用 B 之前已经完成,因此这种情况不适用。相反,将启动活动 A 的新实例。

在我看来,你有两个选择:

1)使用Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK旗帜。这将启动活动 A 作为堆栈的根。它可以工作,但堆栈中的任何其他活动都将丢失。假设 A 是第一个活动(或者至少,您对任务堆栈中的任何先前活动都不感兴趣),那么这并不重要。注意:CLEAR_TASK 需要 API 级别 11。

2)另一种可能的解决方案(如果前面的假设不成立)是根本不使用意图标志:

  • B 以 C 开头startActivityForResult().
  • C 没有调用 A,而是完成了操作,并为 B 设置了一个结果,指示必须启动 A。
  • In B.afterActivityResult(),完成B并启动A。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 FLAG_ACTIVITY_CLEAR_TOP 不起作用? 的相关文章

  • Android 通知进度条冻结

    这是我正在使用的代码 http pastebin com 3bMCKURu http pastebin com 3bMCKURu 问题是 一段时间后 文件变得更重 通知栏下拉速度变慢 最后它就冻结了 你的通知太频繁了 这就是它冻结的原因 让
  • Android - 如何一次只允许播放一个 MediaPlayer 实例?

    我正在尝试创建一个简单的 Sound board Android 应用程序 使用 ListView 项目作为按钮 顺便说一句 我是一个新手程序员 我的想法是 我按下一个按钮 就会播放一个特定的声音文件 如果我在播放声音时按下任何按钮 它应该
  • 如何更新 Firebase 中的节点密钥?

    如何重命名14 04 2017 node 没有用于重命名节点的 API 您必须获取节点的值 使用新名称将其保存到数据库并删除旧节点
  • (Ionic 2)尝试回退到 Cordova-lib 执行时发生错误:TypeError:无法读取未定义的属性“then”

    Edit 使用 ionic 2 时会发生这种情况 我知道它还不稳定 但我认为可能有一些解决方案 因为其他人似乎没有遇到这个问题 Edit end 由于某种原因 我在尝试使用 ionic build android 和 ionic build
  • RxJava、Proguard 和 sun.misc.Unsafe

    我有以下问题RxJava 1 1 0 使用时Proguard 我没有更改 RxJava 版本或其 pro文件 但更新后OkHttp我无法编译使用Proguard因为我有关于sun misc Unsafe不在场 rxJava pro keep
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • Firebase:如何在Android应用程序中设置默认通知渠道?

    如何设置default通知渠道通知消息当应用程序在后台运行时会出现什么情况 默认情况下 这些消息使用 杂项 通道 如你看到的在官方文档中 https firebase google com docs cloud messaging andr
  • 带有自定义阵列适配器的微调器不允许选择项目

    我使用自定义阵列适配器作为微调器 但是 当在下拉列表中选择一个项目时 下拉列表保留在那里 并且微调器不会更新 这是错误行为 与使用带有字符串的通用数组适配器相比 这是自定义类 我错过了什么吗 谢谢 public class Calendar
  • MediaCodec 创建输入表面

    我想使用 MediaCodec 将 Surface 编码为 H 264 使用 API 18 有一种方法可以通过调用 createInputSurface 然后在该表面上绘图来对表面中的内容进行编码 我在 createInputSurface
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 当手机旋转(方向改变)时如何最好地重新创建标记/折线

    背景 开发一个使用 Android Google Map v2 的本机 Android 应用程序 使用android support v4 app FragmentActivity 在 Android v2 2 上运行 客观的 在更改手机方
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • SharedFlow 和 StateFlow 的主要区别

    两者有什么区别共享流 and 状态流 以及如何使用这些MVI建筑学 使用简单更好吗Flow或者这些作为状态和事件 Flow 是冷的 意味着它仅在收集数据时才发出数据 另外Flow不能保存数据 可以把它看成是水在里面流动的管道 Flow中的数
  • 使用 Espresso 检查 EditText 的字体大小、高度和宽度

    如何使用 Espresso 检查 EditText 的字体大小 高度和宽度 目前要分割我使用的文本 onView withId R id editText1 perform clearText typeText Amr 并阅读文本 onVi
  • 无法运行我的应用程序,要求选择 Android SDK

    今天我已经安装了Android Studio 金丝雀 1 现在我无法运行我的应用程序 将出现以下对话框 我已经通过 文件 gt 项目结构 gt Android SDK 位置 设置了正确的 SDK 位置 期待您的帮助来解决这个问题 警告对话框
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项

随机推荐

  • Visual Studio:如何管理项目之间共享的代码

    这可能之前已经发布过 但我不确定要查找什么搜索词 快速解释 我有一些项目之间共享的代码 该代码本身仍在进行中 问题是 每当我需要更新此代码时 我不想更新 3 次 这将成为一场噩梦 有没有办法将其添加到项目中 而不将其复制到项目文件夹中 即我
  • 定义 Spring AOP 后无法切换数据库

    我正在研究多租户架构 我们必须处理数据库的动态创建和切换 我面临的问题是 我在 AOP 级别编写了切换数据库的整个代码 然后在控制器或服务级别我无法进行另一个切换 AOP类 The type Api util Aspect Componen
  • Nock 在 Redux 测试中没有拦截 API 调用

    我正在尝试在 redux 应用程序中测试 api 调用 该代码几乎遵循中概述的模式异步动作创建者redux 文档的部分 http redux js org docs recipes WritingTests html http redux
  • 为什么 Gulp 无法在更改后自动重新处理我的 JS?

    In my gulpfile js JS改变自动触发两者BrowserSync重新加载和我的 JS 处理任务 但由于某种原因 虽然重新加载确实有效 但我的 JS 任务无法正确处理 JS 更改并在中创建新的 JS 文件dist 文件夹 我必须
  • 按 ActiveRecord 中的特定 id 排序

    我继承了另一个程序员的 Rails3 项目 总体来说我对 Rails 还很陌生 他有一个似乎按特定 ID 排序的查询 有人能解释一下这在实际的 SQL 中是如何解决的吗 我认为这段代码正在杀死数据库以及随后的 Rails 我尝试在记录器中输
  • 如果除了 URL 之外什么都没有提供,则创建网站的屏幕截图? [复制]

    这个问题在这里已经有答案了 可能的重复 使用PHP的网站截图 https stackoverflow com questions 757675 website screenshots using php 我想知道如果除了网址之外什么都没有提
  • 从 url 获取数据时出现问题

    这是我写的代码 NSString str NSString stringWithFormat https graph facebook com me access token CAADbwxRRgq8BANULcGGn3d4NPZB4LlP
  • Angular 2文本区域中的多种字体颜色

    我有一个文本区域 其中绑定了一个字符串 文本颜色默认为白色
  • 删除 CSV 文件中的空格

    我有一个带有额外空格的字符串 First Last Email Mobile Phone Company Title Street City State Zip Country Birthday Gender Contact Type 我想
  • 出现编译时错误 CS0579:重复的“AssemblyFileVersionAttribute”属性

    我最近通过 属性 gt 应用程序 gt 程序集信息 按钮向一组 C 项目 dll 添加了一些版权信息 我在一个解决方案中有几个这样的项目 编译后我收到以下类型的错误消息 错误 CS0579 重复的 XXX 属性 其中 XXX 是我指定的属性
  • 是否可以将 SSL 证书从 .key 文件转换为 .pfx?

    有没有办法从 key 文件转换为 pfx 文件 谢谢 编辑 我只有 key 文件 但我的托管提供商说我可以仅使用该文件将其转换为 pfx 要检查您的 key 文件是否包含您需要的一切 check if file contains a val
  • 添加 XML 块作为 SimpleXMLElement 对象的子对象

    我有这个 SimpleXMLElement 对象 其 XML 设置类似于以下内容 xml lt lt
  • 为什么 Java 枚举不可克隆?

    现在改变问题已经太晚了 但更准确的是问 为什么clone 不允许单例 Acopy 方法会更方便 Java 中的枚举无法克隆有什么原因吗 该手册指出 这保证了枚举永远不会被克隆 这是保持其 单例 状态所必需的 但是返回实例本身也将保留其状态
  • 比较两张地图

    我有两张地图声明为Map
  • 如何使用R包Quadprog求解SVM?

    我想知道实现 Quadprog 来解决二次规划的正确方法是什么 我有以下问题 从互联网上摘录 并且也在查看以下内容http cbio ensmp fr thocking mines course 2011 04 01 svm svm qp
  • mac os x 上的 eclipse JNI_CreateJavaVM 错误

    我使用的是 mac os x 10 8 2 我已经安装了java 1 7 然后收回 因为我无法通过xcode发送iphone应用程序 现在java 1 6已安装 ysnky java 版本 java版本 1 6 0 37 Java TM S
  • 为什么我的 vim 命令行路径与 shell 路径不同?

    e g echo PATH usr local bin usr bin bin usr sbin sbin usr local bin bin bin usr local Cellar python3 3 2 3 bin vim echo
  • C 中的 usleep() 是否实现为忙等待?

    我正在构建一个多线程应用程序pthreads并且需要一个线程来定期检查一些东西 在此期间 该线程不应使用任何 CPU 这可能吗 usleep Is usleep 不忙等待吗 或者有更好的解决方案吗 功能usleep已从 SUSv4 中删除
  • Web API 中的依赖注入验证

    在 MVC 中 我可以创建一个可以采用依赖项的模型验证器 我通常使用 FluentValidation 来实现这一点 例如 这使我可以检查帐户注册是否有电子邮件地址未被使用 注意 这是一个简化的示例 public class Registe
  • 为什么 FLAG_ACTIVITY_CLEAR_TOP 不起作用?

    正如标题所说 为什么intent addFlags Intent FLAG ACTIVITY CLEAR TOP or intent setFlags Intent FLAG ACTIVITY CLEAR TOP 行不通 我有 3 项活动