- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想知道,2个代码有什么区别?
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
If set, and the activity being launched is already running in the current task, then instead of launching a new instance of that activity, all of the other activities on top of it will be closed and this Intent will be delivered to the (now on top) old activity as a new Intent.
If set, the activity will not be launched if it is already running at the top of the history stack.
我的理解是
FLAG_ACTIVITY_CLEAR_TOP
- 清除顶部的所有 Activity,并防止在同一任务堆栈中出现超过 1 个相同 Activity 的实例。FLAG_ACTIVITY_SINGLE_TOP
- 防止同一 Activity 在同一任务堆栈中出现多个实例。如果我的理解是正确的,Intent.FLAG_ACTIVITY_NEW_TASK | 不是吗? Intent .FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP
似乎多余?
我们可以只写 Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP
?
最佳答案
FLAG_ACTIVITY_CLEAR_TOP
将创建一个新的 Activity 并关闭顶部的其他 Activity。FLAG_ACTIVITY_SINGLE_TOP
将打开/重新打开该 Activity ,具体取决于它是否已经启动。
新的 Intent 将在 onNewIntent
方法中接收,在这两种情况下,但第一个会破坏其他 Activity 。我们需要想象有一个堆栈。
该堆栈由您开始 Activity 的顺序形成。想想那种情况。启动Activity A,然后启动Activity B,然后是Activity C
堆栈将是这样的:
_ Activity C
_ Activity B
_ Activity A
然后,如果您使用 FLAG_ACTIVITY_CLEAR_TOP
启动 Activity A,Activity A 之上的所有 Activity 都将关闭,并且将交付 Intent onNewIntent
.
关于android - Intent.FLAG_ACTIVITY_CLEAR_TOP 和 Intent.FLAG_ACTIVITY_CLEAR_TOP 有区别吗? Intent .FLAG_ACTIVITY_SINGLE_TOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884819/
我想知道,2个代码有什么区别? newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
我被困在使用 Flag activity clear top usage 中。这对我来说是个大问题。有时有效,有时无效。我不关心是什么。这真的让我很困惑。请帮忙 在这里,我从 Login Acitiv
我遇到了 FLAG_ACTIVITY_CLEAR_TOP 问题。当用户启动应用程序时,会出现一个屏幕供他们登录或注册。用户登录到应用程序后,我希望关闭所有以前的 Activity 。当我按下后退按钮时
我想在我的所有 Activity 设备上都有一个主页按钮,以便它们可以将您带到起点。我从堆栈溢出和 http://developer.android.com/guide/topics/fundamen
我有一个简单的用例。我的 Activity 如下所示:A > B > C 现在,我收到推送通知。 我在我的 GCMIntentService 类中执行以下操作: 在onMessage中, Intent
我有 4 个 Activity A、B、C、D、E,每个 Activity 都声明为 android:launchMode="singleInstance",A 是 B 的 parentActivit
我真的不明白所有这些标志是如何工作的,因为我完全按照文档所说的去做,但它并没有解决我的问题。我的 Activity 是这样启动的:(第一)Activity A -> Activity B -> (第二
在我正在处理的应用程序中,Chrome 选项卡用于外部 OAuth 流。 在流程结束时,自定义选项卡保持打开状态并显示一条信息性消息,并发送一封包含自定义方案链接的电子邮件。 直到 Android 1
我有一个 Activity A,它使用 startActivityForResult 启动一个新 Activity B。 Activity B 使用 FLAG_ACTIVITY_CLEAR_TOP 重
在我的菜单中有一些项目。 Home 是它的一个项目,我想成为我的应用程序的根,每当用户点击它时,Android 清除堆栈然后返回主屏幕。 这是我的代码: menu.setOnItemClickedLi
根据上图,我有一些疑问。请按顺序阅读每个步骤:- 每个 block 都是一个 Android Activity 箭头代表 Stack Direction——Activity 打开的顺序(A 在应用程序
我的申请流程: 登录->个人资料->更新个人资料->ChangePass 我所有的 Activity 都扩展了 FragmentActivity 当我在 ChangePass Activity 中按下
我有多个管理连接的 Activity (B => C => D)。如果该连接断开,它们应该全部清除并将结果返回给 A,具体取决于原因(RESULT_USER_TERMINATED、RESULT_LOW
我有一个 MainActivity(它有 launchMode=singleTop),我从它转到其他 Activity ,例如 B 和 C。现在,我想在 B 和 C 中单击某个按钮时导航回 MainA
我的 Activity 堆栈是 A B C,C 在顶部。 A 使用 startActivityForResult() 启动了 B。 现在,在 C 中,它启动 A 并使用以下代码清除顶部:
正如标题所说,为什么 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 或 intent.setFlags(Intent.FLAG_ACTIVITY_CL
谁能用非常简单的方式解释一下 FLAG_ACTIVITY_CLEAR_TOP 是什么意思?我知道有很多关于它的问题,但没有一个答案让我满意。有人还可以举一个这个标志有用的例子吗?谢谢。 最佳答案 详情
我的应用程序涉及跟踪车辆通过检查门的移动 当在门口张贴的人员点击车辆号码上的“通过”按钮时,该车辆应从列表中删除。我通过再次调用 VehicleActivity 类并将门 id 放入键值对中来完成此操
我有一个像这样的 Activity 堆栈 A -> B -> C。我正在启动 Activity A,并从 C 清除顶部。现在发生的情况是它将立即完成 C,然后它将恢复 A,然后大约 2 秒后它会完成
我有很多 Activity ,比如登录->主->a、b、c、d->注销 [a、b、c、d 是四个 Activity ]。当我登录应用程序时,它会转到主程序并完成登录 Activity 。和 main
我是一名优秀的程序员,十分优秀!