2012-05-15 47 views
2

我是Android新手,我的应用程序中共有6-7项活动。我想知道如何正确地管理我的活动意味着当我移动到A-> B-> C-> D时。那么我怎样才能移动这些活动的堆栈而不是创建。我如何管理我的活动并正确完成活动?

从一个活动移动到另一个我使用下面的代码:

Intent intent=new Intent(current.this,next.class); 
       startActivityForResult(intent, 0); 

现在,如果我想搬回对我使用的代码作为较早活动:

Intent start = new Intent(current.this,next.class); 
        startActivity(start); 
        finishActivity(0); 

回答

3

是否有你不希望使用活性的特殊原因让这些活动处理自己?

Android系统在活动生命周期中做了很好的工作。它允许您从不同地点开始活动,而不会让用户感到困惑,因为后退按钮会将用户带回不同的活动。

如果您没有很好的理由不使用Android指南,请尝试坚持系统执行的方式。其他的事情只会给你带来问题。

你正在开始活动的结果,但我怎么理解你,你永远不会回到他们。

您可以开始一个活动,然后才完成当前活动。这样的活动不会被放在后面的堆栈上。现在,您需要听取后退按钮并创建要让用户参与的活动。

如果你想你应用程式来执行以下操作,从活动一招d喜欢去启动/主屏幕:

Intent goBackToA = new Intent(context, StdActivity.class); 
    goBackToA.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(goBackToA); 

标志FLAG_ACTIVITY_CLEAR_TOP会告诉系统,如果堆栈中包含将显示此活动的实例,并将当前活动与目标活动之间的所有活动从堆栈中移除。这允许您返回到家庭活动而不创建用户可以通过后退按钮移动的巨大循环。

+0

的情况下,我必须从活动D-> A,然后在那种情况下我该怎么做。也请告诉我从一种活动转移到另一种活动的标准方式。我想完成这个我在我的应用程序中面临一个概率。 http://stackoverflow.com/questions/10585310/the-application-still-in-ram-after-using-it-and-take-more-2-space-each-time-i-pl查看链接 – ADB

+0

请参阅我关于FLAG_ACTIVITY_CLEAR_TOP标志的编辑 – Janusz

1

要回到上一个活动,您不必创建新的意图,您可以简单地将this.finish()称为应该消失的那个。

+0

在一个案例中,我必须从活动D-> A,然后在那种情况下我该怎么做。也请告诉我从一种活动转移到另一种活动的标准方式。在这种情况下,我将非常感谢你在 – ADB

1

要回到上一个活动,您不必创建新的意图,您可以简单地调用this.finish()上应该dissapear或您可以按Back按钮以查看以前的活动。

1

,每当你想从一个类导航到另一个使用此代码,可能是这个帮助你导航的活动,

Intent nextpage = new Intent(CurrentActivity.this,NextActivity.class); 
    startActivity(nextpage); 
    this.finish();