我的应用程序实现了一个涉及 3-4 个活动的操作。此流程的入口点可以来自应用程序中的不同活动。(HomeActivity,各种displayActivity)。一旦最后一个活动成功完成,我想返回开始活动。
有最佳实践方法吗?谢谢你。
我的应用程序实现了一个涉及 3-4 个活动的操作。此流程的入口点可以来自应用程序中的不同活动。(HomeActivity,各种displayActivity)。一旦最后一个活动成功完成,我想返回开始活动。
有最佳实践方法吗?谢谢你。
您可以使用全局静态布尔值来帮助您解决这个问题(在示例中SomeClass.IsClosingFlow
),另外,如果每个活动都在“流”中,您应该定义每个活动以“标记”(流=意味着它是需要的活动包的一部分被关闭)。isActivityInFlow()
如果您的所有活动都在扩展一些抽象活动(即),我建议使用此标记作为抽象方法。
以下代码演示了这一点,它需要放置在onResume()
应用程序中的每个活动中:
// Check to see if we are in the process of closing activities
if (SomeClass.IsClosingFlow){
if (isActivityInFlow()){
this.finish();
}
else{
// If we got here, and we're not in the flow anymore
SomeClass.IsClosingFlow = false;
}
}
有很多不同的方法来管理这种应用程序流。一种可能对您有用且非常简单的方法是仅startActivityForResult()
在您从一项活动调用到下一项活动时使用。然后,当您最终完成时,您只需设置结果并调用finish()
. 然后,您可以在每个活动中实施onActivityResult()
,以便它设置结果并finish()
自行调用。通过这种方式,您可以将多个活动链接起来,然后链接回启动链接的人。