[英]Android Intent Activity Logic?
learning about intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
了解有关
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
LEGENDS: 传说:
x--> finish(); x-> finish(); after startActivity(Intent);
在startActivity(Intent)之后;
<--x--> finish(); <-x-> finish(); after startActivity(Intent);
在startActivity(Intent)之后; AND if back button is pressed finish() this and created a startActivity(Intent) going back
并且如果按下后退按钮finish(),则创建了一个startActivity(Intent)返回
--> startActivity(Intent) not finished -> startActivity(Intent)尚未完成
------------------------ ------------------------
Here's my diagram: 这是我的图:
A x--> B <--x--> C <--x--> D --> E x--> F A x-> B <-x-> C <-x-> D- > E x-> F
on F Activity, there is a RETRY AND EXIT BUTTON. 在F活动上,有一个重试和退出按钮。 If retryButton is pressed, finish F Activity which will result back to D Activity since it is not finished.
如果按下retryButton,则完成F活动,由于尚未完成,将返回D活动。
PROBLEM 问题
If exitButton is pressed, finish ActivityF and NEW intent.startActivity(ActivityC); 如果按下exitButton,则完成ActivityF和NEW intent.startActivity(ActivityC);。
Because ActivityC is a new Intent, it becomes the TOP ACTIVITY and FLAG_ACTIVITY_CLEAR_TOP won't do anything. 由于ActivityC是新的Intent,因此它成为TOP ACTIVITY,而FLAG_ACTIVITY_CLEAR_TOP将不执行任何操作。
The thing is I also want to finish ActivityD so that when I reach ActivityB and press the back button it ask me if I want to quit the program, if yes then finish() ActivityB... 事情是我也想完成ActivityD,以便当我到达ActivityB并按返回按钮时,它会问我是否要退出程序,如果是,那么请完成()ActivityB ...
when I do that, however, ActivityD is still on. 但是,当我这样做时,ActivityD仍处于打开状态。 Because of this ActivityD has a potential of overstacking and might be bad for the memory( I suppose?)
因此,ActivityD可能会出现堆栈过多的情况,并且可能对内存不利(我想是吗?)
Anyway to close ActivityD? 无论如何要关闭ActivityD?
Here is the ans. 这是ans。 I have the same situation... try this solution.
我有相同的情况...尝试此解决方案。 This will clear all your top activities from stack.
这将从堆栈中清除所有重要活动。
Intent i = new Intent(mContext,LoginActivity_IDY.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION );
overridePendingTransition(0, R.anim.slide_right);
startActivity(i);
finish();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.