use*_*127 2 flags android android-intent android-activity
我真的不明白所有这些标志是如何工作的,因为我完全按照文档所说的那样,并没有解决我的问题.我的活动是这样启动:(第一)活动A - >活动B - >(第二)活动A.如果我按回按钮,它会返回活动B - >活动A - >退出应用程序.现在我想要从活动B中说明的第二个活动A,当按回来时,它将立即跳过活动B和第一个活动A,以及退出应用程序.这是代码:
从A到B:
TabActivityGroupAbs parentActivity = (TabActivityGroupAbs) ((Activity) ctx).getParent();
detailIntent = new Intent(parentActivity, B.class);
parentActivity.startChildActivity("BFromA", detailIntent);
Run Code Online (Sandbox Code Playgroud)
从B到A:
TabActivityGroupAbs parentActivity = (TabActivityGroupAbs) ((Activity) ctx).getParent();
detailIntent = new Intent(parentActivity, A.class);
detailIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
detailIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
parentActivity.startChildActivity("AFromB", detailIntent);
Run Code Online (Sandbox Code Playgroud)
从B到A,我添加了标志FLAG_ACTIVITY_CLEAR_TOP.但它没有清楚任何事情.当我按下时,它仍然转到活动B,然后再转到A. 我做错了什么?
似乎没有任何标志可以正常工作.从A到B,我把:
detailIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
Run Code Online (Sandbox Code Playgroud)
它应该阻止B被放到活动堆栈中.但事实并非如此.从第二个活动A开始,按下后它仍然会回到B.
现在我应该怎么做才能退出应用程序而不是从第二个活动A返回到B.
编辑:我忘了提.从B到A,如果我调用finish()来杀死活动B,那么从第二个活动A,当按回来时,它会回到第一个活动A.为什么活动A在这里有2个实例,虽然我设置了FLAG_ACTIVITY_CLEAR_TOP?真奇怪.
Gau*_*ora 18
阅读一次,你将永远不会遇到使用flag_activity_clear_top的问题
以下是有关Flag_Activity_Clear_Top用法的简单说明.
适合使用的一种衬里配方:
它始终清除调用活动和被调用活动之间的中间活动(如果有).
这是一个活动流程:
活动A - >活动B - >活动C(使用标志活动清除顶部转到D) - >活动D.
在上述顺序中,如果我们按回到D,那么我们将得到活动C->活动B->活动A,因为活动C和活动D之间没有中间活动
这里的一些开发者的神话是 -
通过使用来自C的标记活动清除顶部到达活动D后,他们期望在按下来自D的后退键时将它们带到应用程序之外.这将永远不会发生.
Flag_Activity_Clear_Top始终清除两个活动之间的中间活动(如果有的话)
From B to A, I add the flags FLAG_ACTIVITY_CLEAR_TOP. But it didn't clear anything. When I pressed back, it still went to Activity B, and then A again. What did I do wrong?
Run Code Online (Sandbox Code Playgroud)
FLAG_ACTIVITY_CLEAR_TOP 清除中间活动而不是之前的活动,要从堆栈中删除活动B,必须在调用活动A时调用B中的finish()
| 归档时间: |
|
| 查看次数: |
5613 次 |
| 最近记录: |