2011-06-23 53 views
0

我有一个活动,在onCreate方法中启动联系人选择器。当用户选择联系人时,该用户的ID被传递到新的child activity。但是,如果用户按下后退键,则会显示空白屏幕,因此onCreate似乎不会再被调用。当用户在儿童活动中点击后退按钮时,如何获得活动重新加载

我试过,onRestartonResume,其修复后的问题,但会发生什么它的竞争条件,它将使调用ID传递给child activity前打开了一个Contact picker活动。我正在使用API​​ 2.3.3。编辑: 我使用API​​ 2.3.3。

我已经尝试重载子活动中的onBack方法来启动新的活动。但是如何改变页面渲染的变化。当您启动新活动时,新活动从屏幕的右侧进入,但是当您回到正常实施时,会导致前一个屏幕从左侧滑入。如果我重载onBack来调用一个新的活动,会发生什么是用户点击后退按钮,并从屏幕的右侧进入屏幕而不是左侧。我需要让窗口滑动与默认模式相同。

回答

1

您无法通过按下后退键调用onCreate。不过,您可以做一件事来完成您的联系人选择器活动。在子活动中覆盖onBackPressed函数并在那里启动一个新的活动。

+0

如果我不回到原始活动并且不关闭它,这是否创建了孤儿活动? –

+0

它会在ActivityManager中转储堆栈。最好是完成活动,以便它不消耗用户的电池 – Sarmad

1
@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); 
    } 
+0

与调用onBackPressed方法不是同一回事吗?虽然我geuss我没有提到我使用的是什么api。还有关于原始的父母活动呢? –

相关问题