Android:startActivity()开始一个“链”的活动?

时间:2010-10-03 05:49:10

标签: android

是的,我知道。这听起来很奇怪,但我想不出任何其他方式来解释它。

我启动Activity MainActivity。它调用startActivity(B)。 B调用startActivity(C)。在C中,我有一个带有 onClickListener 的按钮,如下所示:

startActivity(new Intent(getApplicationContext(), MainActivity.class));

当我按下按钮时,我会进入活动B,而不是主要活动!

LogCat显示:
Activitymanager开始活动:... MainActivity
ActivityManager启动活动:... B

所以,看起来我的MainActivity(A)开始了,然后某事或某人神秘的东西立即开始活动B.

想法?我不知所措......

谢谢!
Llappall

编辑: 一些注释要澄清:
1)我没有覆盖MainActivity中的任何生命周期方法。我只是在创造 2)MainActivity的布局显示覆盖整个屏幕的图像。我捕获用户在图像的OnTouchListener中触摸的位置,并且根据它,我调用不同的意图。代码如下所示:

if (touchX > 0 && touchX < 0.5 && touchY > 0.25
    && touchY < 0.46) {
    Intent i = new Intent(context, ShowListsActivity.class);
    i.putExtra("option", 0);
    startActivity(i);
} else if // if the location of the click is different I call another .class

1 个答案:

答案 0 :(得分:1)

  

在C中,我有一个按钮:
  startActivity(new Intent(getApplicationContext(), MainActivity.class));

您应该使用this代替getApplicationContext()


  

我启动Activity MainActivity。它调用startActivity(B)。

好的,MainActivityA)一旦启动就会调用B吗? 因此,当您调用B意图时MainActivity启动似乎是完全合理的。

据推测,您在onResume的{​​{1}}方法中称为“起始B” - 这意味着每次返回MainActivity时,它都会立即再次启动A

相反,您应该只从B调用“start B”。

尽管正如Codelark所述,详细介绍您正在使用的生命周期方法会很有帮助。