瀏覽代碼

[공통][Bug] Model 정리

hyodong.min 7 年之前
父節點
當前提交
fcbe251488
共有 1 個文件被更改,包括 10 次插入7 次删除
  1. 10 7
      app/src/main/java/kr/co/zumo/app/lifeplus/model/Model.java

+ 10 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/model/Model.java

@@ -7,7 +7,7 @@ import android.arch.lifecycle.ViewModel;
 import android.util.Log;
 
 import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.CompositeDisposable;
+import io.reactivex.disposables.Disposable;
 import io.reactivex.schedulers.Schedulers;
 import kr.co.zumo.app.lifeplus.application.App;
 import kr.co.zumo.app.lifeplus.network.NetworkWatcher;
@@ -33,8 +33,8 @@ import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 public abstract class Model extends ViewModel implements ILifeCycle {
 
   private IModelResult listener;
+  private Disposable networkDisposable;
   protected Presenter presenter;
-  protected CompositeDisposable disposable = new CompositeDisposable();
 
   public Model() {
     Log.w("APP# Model | Model", "| >>>>>>>>>>>> " + this.getClass().getSimpleName());
@@ -50,7 +50,7 @@ public abstract class Model extends ViewModel implements ILifeCycle {
    */
   private void watchNetwork() {
     Log.w("APP# Model | watchNetwork", "| " + this.getClass().getSimpleName() + " - Start network watching............");
-    disposable.add(
+    networkDisposable =
       NetworkWatcher.watch(App.getInstance().getContext())
         .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
         .subscribe(isConnectedAll -> {
@@ -63,13 +63,15 @@ public abstract class Model extends ViewModel implements ILifeCycle {
           if (null != presenter) {
             presenter.onChangedConnection(false, 0);
           }
-        })
-    );
+        });
   }
 
   private void stopNetworkWatching() {
     Log.w("APP# Model | stopNetworkWatching", "| " + this.getClass().getSimpleName() + " - Stop network watching___________");
-    disposable.clear();
+    if (null != networkDisposable) {
+      networkDisposable.dispose();
+      networkDisposable = null;
+    }
   }
 
   protected void onResult(Event event) {
@@ -175,9 +177,10 @@ public abstract class Model extends ViewModel implements ILifeCycle {
 
   /**
    * dispose
+   * - Model 은 Activity 가 destroy 될 때 함께 destroy 된다.
    */
   private void destroy() {
-    Log.w("APP# Model | dispose", "| " + this.getClass().getSimpleName() + "<<<<<<<<<<<<");
+    Log.w("APP# Model | destroy", "| " + this.getClass().getSimpleName() + "<<<<<<<<<<<<");
     destroyInternal();
   }