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);
4

4 回答 4

3

是否有特殊原因不想使用活动堆栈并让活动自行处理?

Android 系统在 Activity 生命周期方面做得非常好。它允许您从不同的位置启动一个 Activity 而不会混淆用户,因为后退按钮会将用户带回到不同的 Activity。

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

你开始活动是为了一个结果,但我如何理解你,你永远不会回到他们身上。

您可以启动一个 Activity,然后完成当前的 Activity。这样,活动就不会被放在后台堆栈上。现在您需要监听返回按钮的按下并创建您希望将用户带到的活动。

如果您想从 Activity A 移动到 D,例如进入应用程序的开始/主屏幕,请执行以下操作:

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

标志 FLAG_ACTIVITY_CLEAR_TOP 将告诉系统,如果 backstack 包含 Activity 的实例,则将显示此活动,并且从 backstack 中删除当前活动和目标活动之间的所有活动。这使您可以返回家庭活动,而不会创建用户可以使用后退按钮移动的巨大循环。

于 2012-05-15T06:12:43.863 回答
1

要回到上一个活动,您不必创建新的意图,您只需在应该消失的那个上调用 this.finish() 即可。

于 2012-05-15T06:03:44.680 回答
1

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

于 2012-05-15T06:06:33.547 回答
1

每当您想从一个班级导航到另一个班级时,请使用此代码,这可能会帮助您导航活动,

 Intent nextpage = new Intent(CurrentActivity.this,NextActivity.class);
    startActivity(nextpage);
    this.finish();
于 2012-05-15T06:10:02.180 回答