问题描述
|
我有一个活动以“ 0”方法启动“联系人”选择器。当用户选择联系人时,该用户的ID将传递给新的“ 1”。但是,如果用户按下返回键,则会出现空白屏幕,这是因为似乎没有再次呼叫
onCreate
。
我已经试过了onRestart
和onResume
,它们解决了后面的问题,但是在发生竞争的情况下,它将在ID传递给child activity
之前进行调用以打开Contact picker
活动。
编辑:
我正在使用API 2.3.3。
我已经尝试在子活动中重载onBack方法以启动新活动。但是要进行更改,即页面呈现的更改方式如何完成。当您启动一个新活动时,新活动从屏幕的右侧出现,但是当您回击常规实现时,会使上一个屏幕从左侧滑入。如果我超载了onBack来调用新活动,则发生的情况是用户单击“后退”按钮,并且屏幕从屏幕的右侧而不是左侧进入。我需要使窗口滑动与默认模式相同。
解决方法
您不能在按下返回键时调用onCreate。但是,您可以做一件事来完成您的联系人选择器活动。覆盖“子活动”中的onBackPressed函数,并在那里启动新的活动。
,
@Override
public boolean onKeyDown(int keyCode,KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(false);//this will not allow to go back
//Here put your code i.e start new activity but first finish current activity
return true;
}
return super.onKeyDown(keyCode,event);
}