可以说我有
A-> B-> C-> D->电子
在Android的后退堆栈。 我希望能够要回下列之一:
A->B->C
A->B
A
我怎样才能做到这一点? 但愿不强制后退按钮点击。
可以说我有
A-> B-> C-> D->电子
在Android的后退堆栈。 我希望能够要回下列之一:
A->B->C
A->B
A
我怎样才能做到这一点? 但愿不强制后退按钮点击。
利用Android上的官方页面开发人员的图像和信息的任务和回堆栈 ,你可以看到所有其他的方式来推出一个活动,你可以确保只有通过这样的行为FLAG_ACTIVITY_CLEAR_TOP
在你的意图的标志。
你经常后退按钮收益为:
但是当你指定这个标志,你得到一个类似的行为,你需要通过一个例子给出这种来源 :
考虑由活动的任务:A,B,C,D,如果d用解析为活动B的成分的意图调用startActivity(),则C和d将完成和B接收给定的意图,从而导致堆栈现在正在:A,B.
使用FLAG_ACTIVITY_CLEAR_TOP
标志。
Intent a = new Intent(this, A.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);
其实,要“涨”到您所选择的活动,你应该使用“向上”导航操作栏上的使用:
/** used to handle the "up" button on the action bar, to go to the defined top activity as written on the manifest */
public static void goUpToTopActivity(final Activity currentActivity) {
final Intent intent = NavUtils.getParentActivityIntent(currentActivity);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
NavUtils.navigateUpTo(currentActivity, intent);
}
为了使用它,你必须在清单设置这个功能应该使用哪个活动(或者你可以自己当然把它通过改变代码):
如果你使用actionBarSherlock,为您希望让每一个活动上,使用:
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.your_app.activities.MainActivity" />
如果您使用Android框架(如果您的minSdk版本是API 16及以上),使用“ parentActivityName ”属性。
假设你正在使用意向转移到另一个活动
Intent i = new Intent(A.this,B.class);
startActivity(i);
此代码将带你到“B”的活动,当你按返回键将再次带你到“A”活动。 如果你不想回去活动“A”可以使用....
Intent i = new Intent(A.this,B.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
有关返回堆栈在Android的更多信息,请点击此链接: http://developer.android.com/guide/components/tasks-and-back-stack.html