|
|
@@ -5,6 +5,7 @@ package kr.co.zumo.app.lifeplus.view.fragment;
|
|
|
|
|
|
import android.content.Context;
|
|
|
import android.os.Bundle;
|
|
|
+import android.support.annotation.CallSuper;
|
|
|
import android.support.annotation.NonNull;
|
|
|
import android.support.annotation.Nullable;
|
|
|
import android.support.v4.app.Fragment;
|
|
|
@@ -44,11 +45,17 @@ public abstract class FragmentBase<P extends Presenter> extends Fragment impleme
|
|
|
public void onAttach(Context context) {
|
|
|
Log.e("APP# FragmentBase | onAttach", "| >>>>>>>>>>>> " + this.getClass().getSimpleName());
|
|
|
super.onAttach(context);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Presenter/Model 은 onCreateView() 에서 생성하여 popStack() 때에도 사용되도록 한다.
|
|
|
+ * - onDestroy() 까지 남아있다.
|
|
|
+ */
|
|
|
+ presenter = definePresenter();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
|
- Log.e("APP# FragmentBase | onCreate", "| >>>>>>>>>>>> " + this.getClass().getSimpleName());
|
|
|
+// Log.e("APP# FragmentBase | onCreate", "| >>>>>>>>>>>> " + this.getClass().getSimpleName());
|
|
|
super.onCreate(savedInstanceState);
|
|
|
}
|
|
|
|
|
|
@@ -57,11 +64,6 @@ public abstract class FragmentBase<P extends Presenter> extends Fragment impleme
|
|
|
public final View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
|
|
Log.e("APP# FragmentBase | onCreateView", "| >>>>>>>>>>>> " + this.getClass().getSimpleName());
|
|
|
|
|
|
- /**
|
|
|
- * Presenter/Model 은 onCreateView() 에서 생성하여 popStack() 때에도 사용되도록 한다.
|
|
|
- */
|
|
|
- presenter = definePresenter();
|
|
|
-
|
|
|
defineActionBar();
|
|
|
defineActionButton();
|
|
|
|
|
|
@@ -70,37 +72,46 @@ public abstract class FragmentBase<P extends Presenter> extends Fragment impleme
|
|
|
|
|
|
@Override
|
|
|
public final void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
|
|
- Log.e("APP# FragmentBase | onViewCreated", "| >>>>>>>>>>>> " + this.getClass().getSimpleName());
|
|
|
+// Log.e("APP# FragmentBase | onViewCreated", "| >>>>>>>>>>>> " + this.getClass().getSimpleName());
|
|
|
super.onViewCreated(view, savedInstanceState);
|
|
|
-
|
|
|
- onAfterActivityCreated(savedInstanceState);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * onActivityCreated() 는 restart 에 실행되지 않는다.
|
|
|
+ * - 레이아웃의 view 들을 변수에 assign 해준다.
|
|
|
+ *
|
|
|
+ * @param savedInstanceState
|
|
|
+ */
|
|
|
@Override
|
|
|
public final void onActivityCreated(@Nullable Bundle savedInstanceState) {
|
|
|
Log.e("APP# FragmentBase | onActivityCreated", "| >>>>>>>>>>>> " + this.getClass().getSimpleName());
|
|
|
super.onActivityCreated(savedInstanceState);
|
|
|
|
|
|
+ onAfterActivityCreated(savedInstanceState);
|
|
|
}
|
|
|
|
|
|
+ @CallSuper
|
|
|
@Override
|
|
|
public void onStart() {
|
|
|
presenter.start();
|
|
|
super.onStart();
|
|
|
}
|
|
|
|
|
|
+ @CallSuper
|
|
|
@Override
|
|
|
public void onResume() {
|
|
|
presenter.resume();
|
|
|
super.onResume();
|
|
|
}
|
|
|
|
|
|
+ @CallSuper
|
|
|
@Override
|
|
|
public void onPause() {
|
|
|
presenter.pause();
|
|
|
super.onPause();
|
|
|
}
|
|
|
|
|
|
+ @CallSuper
|
|
|
@Override
|
|
|
public void onStop() {
|
|
|
presenter.stop();
|
|
|
@@ -108,22 +119,13 @@ public abstract class FragmentBase<P extends Presenter> extends Fragment impleme
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void onDestroyView() {
|
|
|
+ public final void onDestroyView() {
|
|
|
Log.w("APP# FragmentBase | onDestroyView", "| <<<<<<<<<<<<< " + this.getClass().getSimpleName());
|
|
|
if (null != disposable) {
|
|
|
disposable.dispose();
|
|
|
disposable = null;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * fragment 전환 시 onDestroyView() 까지만 실행된다.
|
|
|
- */
|
|
|
-
|
|
|
- if (null != presenter) {
|
|
|
- presenter.destroy();
|
|
|
- presenter = null;
|
|
|
- }
|
|
|
-
|
|
|
super.onDestroyView();
|
|
|
|
|
|
onAfterDestroyView();
|
|
|
@@ -134,6 +136,15 @@ public abstract class FragmentBase<P extends Presenter> extends Fragment impleme
|
|
|
Log.w("APP# FragmentBase | onDestroy", "| <<<<<<<<<<<<< " + this.getClass().getSimpleName());
|
|
|
super.onDestroy();
|
|
|
|
|
|
+ /**
|
|
|
+ * Presenter 및 Model 을 destroy 한다.
|
|
|
+ * Fragment 가 destroy 되면 재사용은 불가능해진다.
|
|
|
+ */
|
|
|
+ if (null != presenter) {
|
|
|
+ presenter.destroy();
|
|
|
+ presenter = null;
|
|
|
+ }
|
|
|
+
|
|
|
onAfterDestroy();
|
|
|
}
|
|
|
|