我有以下代码:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
doBackgroundStuffOnLaunch();
}
private void doBackgroundStuffOnLaunch() {
Observable.create(new Observable.OnSubscribe<Boolean>() {
@Override
public void call(Subscriber<? super Boolean> subscriber) {
// read a file or any other background operation
subscriber.onNext(isItPossibleToReadTheFile());
subscriber.onCompleted();
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new DoStuffDependingOnTheResultSubscriber());
}
}
我想知道,我是否应该尝试取消订阅DoStuffDependingOnTheResultSubscriber,以防用户在后台工作完成之前退出应用程序(如果我应该,应该采用什么方法?)。或者也许在它上面调用onCompleted就足够了,它现在不会泄漏。
或许这种方法完全错误,我绝不应该在应用程序类中使用rx observable。
我是否应该始终尝试在已订阅订阅者完成工作的订阅号码上取消订阅?