2013-11-15 49 views
0

我开发的Android应用程序的iOS应用程序,我面临一个问题。在Android应用程序中,用户可以从一个主选项卡导航到5个活动,比如导航应用程序,但是当我到达第5个活动并完成任务时,我需要完成所有5个活动,并返回到主标签活动。我会怎么做?立即完成许多活动

在iOS中,我只是popToRootViewController而就是这样..但在android中没有这样的事情,我知道。

感谢, 牛顿

编辑#1:IM支持Android 2.2的,我使用的SherlockBar库。

+3

如果活动链中没有倒退,每次活动都可以在开始下一个活动后简单地“完成()”。否则,你会让他们开始下一个活动“结果”,完成()后收到正确的结果。 – mah

+0

@mah谢谢你的回复..但我不能简单地完成每个活动,然后再开始下一个活动,因为用户可能想回去改变一些东西,然后再前进。 –

+0

每个预期的Android应用程序设计,这不是真的很有理由不尽早完成()。作为一个写得很好的Android活动,你需要能够保存你的状态并在很少的通知下恢复它,以响应被暂停/恢复(当活动改变时,当home按钮被按下,当power被删除等) - 所以你说你不能做你已经应该做的事情?没有法律说你必须这样做,但如果你准备好做Android设计所要求的,那么你在这里的任务会更容易。 – mah

回答

2

启动使用FLAG_ACTIVITY_CLEAR_TOP的意图,你的根活动:

Intent intent = new Intent(...); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
+0

的答案,但是它不会创建另一个实例我的标签栏活动? –

+0

哦不..我只是读这个国旗文件,它看起来很有前途..我会尝试这个和其他altenartives ..谢谢! –

2

您应该使用这个NavUtils辅助类,其管理每个Android的设计指南适当的导航。您可以简单地调用navigateUpTo方法。

Intent intent = new Intent(...); 
NavUtils.navigateUpTo(this, intent); 

该课程的其他用途请查看navigation guide

+0

感谢您的回复。你的回答是正确的,但因为我从一开始就没有使用NavUtils,所以需要花费很多精力来更新所有5个活动才能使用它..所以我认为@ Darkhogg的回答更适合我的情况! –

+0

其实''NavUtils'与前果冻豆设备上的@Darkhogg答案相同: '@Override public void navigateUpTo(Activity activity,Intent upIntent) {upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); activity.startActivity(upIntent); activity.finish(); }' 在JB上,它调用'activity.navigateUpTo'。 – WonderCsabo