1818import butterknife .Bind ;
1919import butterknife .ButterKnife ;
2020import com .morihacky .android .rxjava .R ;
21+ import io .reactivex .android .schedulers .AndroidSchedulers ;
22+ import io .reactivex .disposables .Disposable ;
23+ import io .reactivex .processors .PublishProcessor ;
2124import java .util .ArrayList ;
2225import java .util .List ;
23- import rx .android .schedulers .AndroidSchedulers ;
24- import rx .subjects .PublishSubject ;
2526
2627public class NetworkDetectorFragment
2728 extends BaseFragment {
@@ -31,7 +32,8 @@ public class NetworkDetectorFragment
3132 private LogAdapter adapter ;
3233 private BroadcastReceiver broadcastReceiver ;
3334 private List <String > logs ;
34- private PublishSubject <Boolean > publishSubject ;
35+ private Disposable disposable ;
36+ private PublishProcessor <Boolean > publishProcessor ;
3537
3638 @ Override
3739 public void onDestroy () {
@@ -58,9 +60,9 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
5860 public void onStart () {
5961 super .onStart ();
6062
61- publishSubject = PublishSubject .create ();
63+ publishProcessor = PublishProcessor .create ();
6264
63- publishSubject
65+ disposable = publishProcessor
6466 .startWith (getConnectivityStatus (getActivity ()))
6567 .distinctUntilChanged ()
6668 .observeOn (AndroidSchedulers .mainThread ())
@@ -79,6 +81,8 @@ public void onStart() {
7981 @ Override
8082 public void onStop () {
8183 super .onStop ();
84+
85+ disposable .dispose ();
8286 getActivity ().unregisterReceiver (broadcastReceiver );
8387 }
8488
@@ -87,7 +91,7 @@ private void listenToNetworkConnectivity() {
8791 broadcastReceiver = new BroadcastReceiver () {
8892 @ Override
8993 public void onReceive (Context context , Intent intent ) {
90- publishSubject .onNext (getConnectivityStatus (context ));
94+ publishProcessor .onNext (getConnectivityStatus (context ));
9195 }
9296 };
9397
0 commit comments