Skip to content

Commit 53dd815

Browse files
committed
fix bug
1 parent 2827022 commit 53dd815

3 files changed

Lines changed: 24 additions & 3 deletions

File tree

app/src/main/java/com/codeest/geeknews/base/RxPresenter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class RxPresenter<T extends BaseView> implements BasePresenter<T> {
1717

1818
protected void unSubscribe() {
1919
if (mCompositeDisposable != null) {
20-
mCompositeDisposable.dispose();
20+
mCompositeDisposable.clear();
2121
}
2222
}
2323

app/src/main/java/com/codeest/geeknews/presenter/zhihu/DailyPresenter.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,11 @@ public void onNext(DailyBeforeListBean dailyBeforeListBean) {
169169

170170
@Override
171171
public void startInterval() {
172+
if (intervalSubscription != null && !intervalSubscription.isDisposed()) {
173+
return;
174+
}
172175
intervalSubscription = Flowable.interval(INTERVAL_INSTANCE, TimeUnit.SECONDS)
176+
.onBackpressureDrop()
173177
.compose(RxUtil.<Long>rxSchedulerHelper())
174178
.subscribe(new Consumer<Long>() {
175179
@Override
@@ -184,7 +188,7 @@ public void accept(Long aLong) {
184188

185189
@Override
186190
public void stopInterval() {
187-
if (intervalSubscription != null) {
191+
if (intervalSubscription != null && !intervalSubscription.isDisposed()) {
188192
intervalSubscription.dispose();
189193
}
190194
}

app/src/main/java/com/codeest/geeknews/ui/zhihu/fragment/DailyFragment.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ public class DailyFragment extends RootFragment<DailyPresenter> implements Daily
4545
DailyAdapter mAdapter;
4646
List<DailyListBean.StoriesBean> mList = new ArrayList<>();
4747

48+
boolean isDataReady = false;
49+
4850
@Override
4951
protected void initInject() {
5052
getFragmentComponent().inject(this);
@@ -97,6 +99,20 @@ public void onRefresh() {
9799
mPresenter.getDailyData();
98100
}
99101

102+
@Override
103+
public void onStart() {
104+
super.onStart();
105+
if (isDataReady) {
106+
mPresenter.startInterval();
107+
}
108+
}
109+
110+
@Override
111+
public void onStop() {
112+
super.onStop();
113+
mPresenter.stopInterval();
114+
}
115+
100116
/**
101117
* 当天数据
102118
* @param info
@@ -110,7 +126,7 @@ public void showContent(DailyListBean info) {
110126
mList = info.getStories();
111127
currentDate = String.valueOf(Integer.valueOf(info.getDate()) + 1);
112128
mAdapter.addDailyDate(info);
113-
mPresenter.stopInterval();
129+
isDataReady = true;
114130
mPresenter.startInterval();
115131
}
116132

@@ -125,6 +141,7 @@ public void showMoreContent(String date,DailyBeforeListBean info) {
125141
swipeRefresh.setRefreshing(false);
126142
}
127143
stateMain();
144+
isDataReady = false;
128145
mPresenter.stopInterval();
129146
mList = info.getStories();
130147
currentDate = String.valueOf(Integer.valueOf(info.getDate()));

0 commit comments

Comments
 (0)