是的,我知道。这听起来很奇怪,但我想不出任何其他方式来解释它。
我启动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
答案 0 :(得分:1)
在C中,我有一个按钮:
startActivity(new Intent(getApplicationContext(), MainActivity.class));
您应该使用this
代替getApplicationContext()
。
我启动Activity MainActivity。它调用startActivity(B)。
好的,MainActivity
(A
)一旦启动就会调用B
吗?
因此,当您调用B
意图时MainActivity
启动似乎是完全合理的。
据推测,您在onResume
的{{1}}方法中称为“起始B” - 这意味着每次返回MainActivity
时,它都会立即再次启动A
相反,您应该只从B
调用“start B”。
尽管正如Codelark所述,详细介绍您正在使用的生命周期方法会很有帮助。