4
解决!后退按钮关闭两个活动?
我的活动堆栈看起来像这样,请原谅图表!
A-->B-->C
'-->D
如果我按回到活动B
按钮,我回去A
预期。
但是,如果我按下活动C
或D
中的按钮,我将返回A而不是B
。 在我的脑海里,这可以通过两件事情
1)当它打开了C
或D
2的意图活动B
退出引起的)的后退按钮以某种方式被称为两次?
我仔细观察了活动B
中的点击听众,他们开始期望在那里找到finish()
呼叫,但是没有。
我还检查onBackPressed()
活动方法C
和D
以查看我是否手动打开活动A ...但我不是。
这里的活动A
protected void onResume() {
super.onResume();
screenOn(SCREEN_ON_DURATION);
mWakeLock.acquire();
}
这里的方法的onResume就是我开始意图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()完成()这就是问题所在!
你可以在模拟器内部复制这个问题吗?确保您的设备正常。你是否在任何地方重写onBackPressed()或onResume()? – ntkachov
你提出了什么意图参数活动B?也许你从堆栈中删除它? – xandy
还有一点要检查:B的onActivityResult。如果你用'startActivityForResult()'和B的'onActivityResult()'调用'finish()'来打开D,当D关闭时B将被关闭。 – kingori