我有一个问题困扰着我。我怎样才能完成活动C并开始它的父母。但棘手的部分是,我可以从20个其他活动开始活动C.这个想法是打开正确的一个,当我打电话完成对C.另一件事是,我有tabhost
,哪些孩子打开活动C.Android完成当前活动并启动父项活动
任何建议如何实现这一目标?
我有一个问题困扰着我。我怎样才能完成活动C并开始它的父母。但棘手的部分是,我可以从20个其他活动开始活动C.这个想法是打开正确的一个,当我打电话完成对C.另一件事是,我有tabhost
,哪些孩子打开活动C.Android完成当前活动并启动父项活动
任何建议如何实现这一目标?
我压根儿是这样的:
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
这并获得成功。
取决于您的活动堆栈,如果您的当前正好在父活动的顶部,您可以完成当前的活动并且它将转到之前的活动。如果要清除所有活动堆栈,并开始了新的活动尝试
Intent intent1 = new Intent(context, activity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent1);
其清除栈,并开始了新的,如果你有超过父堆栈活动要完成所有使用和重新开始的父母。
我想回到之前的活动,我忘了提及我想清除历史,但是我应该放置什么而不是'activity.class'? –
您想要作为班级重定向的活动名称 –
保存下列变量:
Class parent = ParentActivityClass.class;
覆盖:
public void onBackPressed(){
//create an intent like
Intent i = new Intent(this, parent);
startActivity(i);
//add extras to intent if needed
this.finish();
}
请注意,这可能会创建一个新的父活动。如果这可能会产生问题,则由您来处理这种情况。
另一种解决方案是在启动新活动时完成彼此的子活动。这将确保在你的筹码中,你将始终拥有低于儿童活动的家长。
在Task and Backstack,Implementing Temporal和Ancestral Navigation
有更具体的解释看看。希望这个帮助
活动c有tabhost在它或一些主要活动包含tabhost和从这些标签活动活动c你打电话! – vikky
您可以使用ActivityGroup(包含并运行多个嵌入式活动的屏幕)扩展您的活动,您可以在其中完成活动C并清除所有前期活动的列表,以使您的初始活动再次重新启动。如果它是tabhost,请查找TabGroupActivity类示例 – 2011-11-22 12:45:40
第二个,活动C由tabhost中的活动调用。 –