[android] rxJava1 → rxJava2 変更する 〜unsubscribe から disposeへ〜


##rxJava1の場合
``` RxJavaActivity.java
public class RxJavaActivity extends Activity {

    private Subscription subscription;

    public void onDestroy() {
        if(subscription != null){
           subscription.unsubscribe();
        }

        super.onDestroy();
    }

    private void loadData() {
        subscription = Observable.create(new Observable.OnSubscribe<Data>() {
            @Override
            public void call(Subscriber<Data> subscriber) {
                Data data = null;
                try {
                   data = getData();
                } catch (Exception e) {
                   subscriber.onError(e);
                }
                observableEmitter.onNext(data);
                observableEmitter.onCompleted();

            }
        }).subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscribe<Data>() {
                    @Override
                    public void onCompleted() {
                        //処理
                    }

                    @Override
                    public void onError(Throwable e) {
 　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　//処理
                    }

                    @Override
                    public void onNext(PixivResponse pixivResponse) {
 　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　//処理
                    }
                });
   }
}
```

##rxJava2の場合
``` RxJava2Activity.java

public class RxJava2Activity extends Activity {

    private DisposableSingleObserver<Document> loadDataDisposable;

    public void onDestroy() {
        if(loadDataDisposable != null){
           loadDataDisposable.dispose();
        }

        super.onDestroy();
    }

    private void loadData() {
        loadDataDisposable = Observable.create(new ObservableOnSubscribe<Data>() {
            @Override
            public void subscribe(ObservableEmitter<Object> observableEmitter) throws Exception {
                Data data = null;
                try {
                   data = getData();
                } catch (Exception e) {
                    if (!observableEmitter.isDisposed()) {
                        observableEmitter.onError(e);
                    }
                }

                if (!observableEmitter.isDisposed()) {
                    observableEmitter.onNext(data);
                    observableEmitter.onComplete();
                }
            }
        })
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeWith(new DisposableObserver<Data>() { //subscribeWithになる
                     @Override
                     public void onNext(Document document) {
                        //処理
                     }

                    @Override
                    public void onError(Throwable throwable) {
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　//処理
                    }
 
                    @Override
                    public void onComplete() {　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　//onCompleteになる
　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　//処理
                    }
                });
   }
}
```


-----------------------------------------
以下は、ゲームの宣伝ですm(_ _)m

○落ちてくる物すべてタップ
<img src=https://qiita-image-store.s3.amazonaws.com/0/50917/7e445cb0-29fe-eb7d-f35c-c48ffd0bc504.jpeg width=150px align="left">
<a href= https://play.google.com/store/apps/details?id=com.secretcommandlab.taptapdrop><img src=https://qiita-image-store.s3.amazonaws.com/0/50917/e5ad66a0-6cce-c312-9ae5-3f6473de9783.png width=150px align="left">
</a>
<a href="https://itunes.apple.com/us/app/%E8%90%BD%E3%81%A1%E3%81%A6%E3%81%8F%E3%82%8B%E7%89%A9%E3%81%99%E3%81%B9%E3%81%A6%E3%82%BF%E3%83%83%E3%83%97/id1228691845?mt=8"><img src=https://qiita-image-store.s3.amazonaws.com/0/50917/37d2e0ca-bf3d-86f3-6d5b-173029f5ad20.png align="left" width=150px>
</a>