2011-06-23 54 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。還有關於原始的父母活動呢? –

相關問題