Android完成当前活动并启动父活动

时间:2011-11-22 12:20:58

标签: android android-tabhost

我有一个小问题困扰着我。我怎样才能完成活动C并启动它的父级。但棘手的部分是我可以从其他20个活动开始活动C.当我在C上调用完成时,我的想法是打开正确的那个。另一个是我有tabhost,哪个孩子打开活动C.

有任何建议如何实现这一目标?

4 个答案:

答案 0 :(得分:2)

活动中的

C保存以下变量:

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

请注意,这可能会创建一个新的父活动。如果这可能会产生问题,你可以自行处理这种情况。

另一种解决方案是在启动新活动时完成彼此的子活动。这将确保在您的堆栈中,您将始终拥有子活动下方的父级。

答案 1 :(得分:1)

如果当前完全在父活动之上,您可以完成当前的活动,并依赖于您的活动堆栈,它将转到之前的活动。如果要清除所有活动堆栈并重新开始新活动,请尝试

 Intent intent1 = new Intent(context, activity.class);
             intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
             intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
            startActivity(intent1);

清除你的堆栈并重新开始,如果你有一堆活动超过父级想要完成所有使用它并再次从父级开始。

答案 2 :(得分:1)

我只是做了这样的事情:

 Intent intent = new Intent();
 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 finish();

这就是诀窍。

答案 3 :(得分:0)

查看Task and BackstackImplementing TemporalAncestral Navigation

有更具体的解释。希望这个帮助