如何完成活动并返回不同的位置?

时间:2013-01-24 10:25:48

标签: android back-stack

我的应用程序实现了一个可以延伸3-4个活动的动作。 此过程的入口点可以来自应用程序中的不同活动。 (HomeActivity,各种displayActivities)。我想在最后一个活动成功完成后返回到开始活动。

有最佳实践方法吗?三江源。

2 个答案:

答案 0 :(得分:1)

您可以使用全局静态布尔值来帮助您(在示例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;
        }
    }

答案 1 :(得分:0)

管理这种应用程序流有很多种不同的方法。一种可能适合您并且非常容易的方法是在从一个活动呼叫到下一个活动时使用startActivityForResult()。然后,当你最终完成时,你只需设置结果并调用finish()。然后,您可以在每个活动中实施onActivityResult(),以便设置结果并在其自身上调用finish()。通过这种方式,您可以链接许多活动,然后链接回任何开始链的人。