2011-06-23 9 views
0

onCreateメソッドでコンタクトピッカーを起動するアクティビティがあります。ユーザーが連絡先を選択すると、そのユーザーIDが新しいchild activityに渡されます。しかし、ユーザが戻るキーを押した場合、onCreateが再び呼び出されていないように見えるので、空白の画面が表示されます。ユーザーが子アクティビティで戻るボタンを押したときにアクティビティを再ロードする方法

私が試した、onRestartonResume、バックの問題を解決するが、何それを、それは呼び出しがchild activityに渡されIDContact picker活動を開くようになりますする競合状態を発生します。

EDIT: 私はAPI 2.3.3を使用しています。

子アクティビティでonBackメソッドのオーバーロードを試して、新しいアクティビティを開始しました。しかし、ページのレンダリングがどのように変化するかを変更します。新しいアクティビティを起動すると、新しいアクティビティが画面の右側から表示されますが、ヒットしたときに通常の実装では、前の画面が左側からスライドします。私が新しい活動を呼び出すためにonBackをオーバーロードすると、ユーザーは戻るボタンを押して画面が画面の右側から来るようになります。ウィンドウをデフォルトのパターンと同じにする必要があります。

答えて

1

押された戻るキーでonCreateを呼び出すことはできません。ただし、連絡先選択アクティビティを完了する1つのことを行うことができます。子アクティビティでBackPressedの関数をオーバーライドし、そこで新しいアクティビティを開始します。

+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について言及していないが。また、orignalと呼ばれる親アクティビティはどうですか? –

関連する問題