2017-10-25 24 views
0

私のデータベースにデータを追加するフラグメントがあります。私がで閉じると、dismiss()、私の活動に戻ります。そのアクティビティで自分のrecyclerViewを更新したいと思います。フラグメント終了後のOnResumeによるアクティビティの更新

アクティビティのライフサイクルを理解すると、onResumeを正しく呼び出す必要がありますか?私はonResumeメソッドのログインを持っていて、それが呼び出されていないと言うことができる限りです。

もっと良い解決策は何ですか、なぜこれが呼び出されないのですか?

onResume

@Override 
public void onResume() { 
    super.onResume(); 
    Log.e("Resume", "Resuming"); 

} 

ボタン私のフラグメントでリスナーをクリックします。ここのログは完璧に機能します。

//save button for saving workouts 
    mButton2.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 

      String title = mEditText.getText().toString(); 
      String category = mSpinner.getSelectedItem().toString(); 
      String weight = mEditText2.getText().toString(); 
      int icon = buildIcon(category); 

      //pass all the data into a new object for the Recycler View to store and show also refresh 
      db.addWorkout(new Workout(title, weight, "8/8/8", icon)); 
      Log.e("Database Build", "Added a new workout: " + title); 

      dismiss(); 
     } 
    }); 
+4

アクティビティは一時停止されていないので、フラグメントが閉じているときには 'onResume'を入力しません。これは、アクティビティがフラグメントをホストするためです。フラグメントは単純にオーバーレイされているため、アクティビティは表示されませんが、技術的には、OSに関する限り、アクティビティはまだ表示されています。アクティビティーに何かを伝えたい場合は、フラグメントから何らかのタイプのイベントを送信し、アクティビティーのそのイベントにサブスクライブする必要があります。または、コールバックを使用することもできます。 –

答えて

2

フラグメントの処理を開始したときに、アクティビティが一時停止されることはありませんでした。 onResumeはそのシナリオでは呼び出されず、ライフサイクルの動作が予想されます。

一部のコールバックの実装を検討して、Fragmentが閉じたときにアクティビティに通知させることを検討する必要があります。 android documentationには、フラグメントとの通信方法の説明があります。ドキュメントのパターンを使用して自分自身を構築してくださいOnFragmentClosedListener

+0

ありがとう、私はコミュニケーションのためのインターフェイス方法をやっている作業を始めましたが、私は不必要な場合は難しいことをしないようにしたいと思っていました。 –