Android Intent Activity Logic?

时间:2014-08-09 05:22:03

标签: android android-intent

了解intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

LEGENDS:

x - > finish();在startActivity(Intent)之后;

< - x - > finish();在startActivity(Intent)之后;如果按下后退按钮,则完成()这个并创建一个startActivity(Intent)返回

- > startActivity(Intent)未完成

------------------------

这是我的图表:

x - > B < - x - > C < - x - > D - > E x - > F

在F Activity上,有一个重试和退出按钮。 如果按下retryButton,则完成F活动,这将导致返回D活动,因为它未完成。

问题

如果按下exitButton,请完成ActivityF和NEW intent.startActivity(ActivityC);

因为ActivityC是一个新的Intent,它将成为TOP ACTIVITY,FLAG_ACTIVITY_CLEAR_TOP不会做任何事情。

问题是我也想完成ActivityD,这样当我到达ActivityB并按下后退按钮时它会问我是否要退出程序,如果是,则完成()ActivityB ...

但是,当我这样做时,ActivityD仍在使用。因为这个ActivityD有可能被重叠,可能对内存不利(我想?)

无论如何要关闭ActivityD?

1 个答案:

答案 0 :(得分:0)

这是ans。我有同样的情况......尝试这个解决方案。这将清除堆栈中的所有顶级活动。

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();