已解决!
我的Activity Stack看起来像这样,不好意思,图示比较粗糙!
A-->B-->C
'-->D
如果我在活动B中按返回按钮,我会像预期的那样回到A。然而,如果我在活动C或D中按返回按钮,我会回到A而不是B。在我看来,这可能有两个原因:
1)当打开C或D的意图时,活动B退出。 2)返回按钮被调用两次?
我仔细查看了在活动B中启动意图的单击监听器,以寻找是否有finish()调用,但没有找到。我还检查了活动C和D的onBackPressed()方法,看是否手动打开了活动A……但事实并非如此。以下是活动A的onResume方法:
protected void onResume() {
super.onResume();
screenOn(SCREEN_ON_DURATION);
mWakeLock.acquire();
}
这是我启动意图C和D的方式:
Bundle info = new Bundle();
info.putString("classId", ""+classId );
Intent intent = new Intent(Notebook.this, StudentChooser.class);
intent.putExtras(info);
Notebook.this.startActivity(intent);
有人可以帮忙吗?
编辑:我在onUserLeaveHint()中发现了finish(),这就是问题所在!
startActivityForResult()
打开D,而B的onActivityResult()
调用了finish()
,那么当D关闭时,B也会被关闭。 - kingorionActivityResult()
:-( 感谢其他人的建议,我已经相应地编辑了问题。 @ntkachov我无法在模拟器上检查应用程序,因为我正在使用在手机上创建的数据库,并不知道如何移动它。 - jasononUserLeaveHint()
中发现了finish()
。不幸的是,我的声望还没有提高,所以我不能自己回答问题,我会将其标记为已解决。这都是因为我粗心大意地复制和粘贴!感谢大家的帮助,并迫使我更仔细地寻找finish()
方法! - jason