Android Activity生命周期问题

时间:2011-04-12 10:13:50

标签: android

我有两个名为 Home Cart 的活动。当我按下活动主页中的按钮时,它会转到活动购物车

为此,我使用了以下代码

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

购物车活动中,当我按下按钮时,它会进入活动主页

For That

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

活动正在变化,但每次活动开始时都会调用onCreate方法。

这是活动的良好生命周期吗?如果没有,我该如何解决?

4 个答案:

答案 0 :(得分:1)

如何解决?这是活动的预期行为。不过,如果您不希望调用onCreate方法中的方法,可以使用这样的标志:

public class YourActivity extends Activity {

   private boolean firstStart = true; 

   public void OnCreate(...) {

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

   }
}

答案 1 :(得分:1)

如果您同时运行两项活动,请考虑使用TabHost

答案 2 :(得分:1)

要解决您的问题,您必须了解活动生命周期,以及从一个活动切换到另一个活动时调用的活动生命周期方法。

enter image description here

答案 3 :(得分:0)

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

通过这种设计,您最终可能会有一堆不断增长的活动,例如:Home - >购物车 - >首页 - >购物车 - >首页 - >购物车 - >等...

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

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

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

只要推出购物车,就会调用

onCreate(),但只会在Home中调用一次。

但真实的是你甚至不应该让那个按钮从推车回到家。这可能是人们在iOS上做的事情,但在Android上,我们有“返回”按钮,用户知道,使用它,并且不需要在屏幕上复制此按钮。

相关问题