安卓Activity生命周期问题

3

我有两个活动,分别叫做主页购物车。当我在主页中按下一个按钮时,它会跳转到购物车活动。

为此,我使用了以下代码:

 public void onClick(View v) {
     Intent intent = new Intent(this, Cart.class);
     startActivity(intent);
 }

购物车活动中,当我按下按钮时,它跳转到主页活动。
为了实现这个功能:
 public void onClick(View v) {
     Intent intent = new Intent(this, Home.class);
     startActivity(intent);
 }

活动(Activity)的变化很好,但是onCreate方法每次启动活动时都会调用。

这是一个正常的活动生命周期吗?如果不是,我该如何解决?


你还没说你想解决什么问题。你试图实现什么行为? - dave.c
4个回答

1

如何解决什么问题?那就是活动的预期行为。然而,如果您不希望在onCreate方法中调用方法,可以使用以下标志:

public class YourActivity extends Activity {

   private boolean firstStart = true; 

   public void OnCreate(...) {

      if (firstStart) {
         //do your stuff here
         firstStart = false;
      }

   }
}

1

如果你有两个活动同时运行,考虑使用TabHost


1
为解决您的问题,您需要了解活动生命周期以及在从一个活动切换到另一个活动时调用哪些活动生命周期方法。

enter image description here


0

不,我认为在这种情况下循环不正确。

使用这种设计,您可能会得到一个不断增长的活动堆栈,例如:主页 -> 购物车 -> 主页 -> 购物车 -> 主页 -> 购物车 -> 等等...

按返回按钮将循环遍历此堆栈中的每个项目。

我认为这不是您想要的。如果用户在主页上,然后进入购物车,他很可能会按返回键返回主页。现在堆栈只包含主页,再次按返回键将退出,这听起来是正确的。鉴于您展示的代码片段,我认为当用户按下购物车中提到的按钮时,应该发生完全相同的事情。

因此,您需要在购物车中调用finish(),以返回主页。您不应该依赖onSaveInstanceState()来恢复购物车的内容。您可以例如使用SQLite数据库来实现此目的。

每当启动购物车时都会调用onCreate(),但在主页中仅调用一次。

但实际上,你甚至不应该有那个从购物车返回主页的按钮。这可能是iOS上的做法,但在Android上,我们有返回按钮,用户知道它,使用它,屏幕上没有必要复制这个按钮。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接