我正在使用RxJava2和Retrofit。在我的片段中,我请求上传本地文件:
# install ggbiplot package, if not already installed
#library(devtools)
#install_github("vqv/ggbiplot")
library(ggbiplot)
data(wine)
head(wine)
# Alcohol MalicAcid Ash AlcAsh Mg Phenols Flav NonFlavPhenols Proa Color Hue OD Proline
#1 14.23 1.71 2.43 15.6 127 2.80 3.06 0.28 2.29 5.64 1.04 3.92 1065
#2 13.20 1.78 2.14 11.2 100 2.65 2.76 0.26 1.28 4.38 1.05 3.40 1050
#3 13.16 2.36 2.67 18.6 101 2.80 3.24 0.30 2.81 5.68 1.03 3.17 1185
#4 14.37 1.95 2.50 16.8 113 3.85 3.49 0.24 2.18 7.80 0.86 3.45 1480
#5 13.24 2.59 2.87 21.0 118 2.80 2.69 0.39 1.82 4.32 1.04 2.93 735
#6 14.20 1.76 2.45 15.2 112 3.27 3.39 0.34 1.97 6.75 1.05 2.85 1450
wine.pca <- prcomp(wine, scale. = TRUE)
print(ggbiplot(wine.pca, obs.scale = 1, var.scale = 1, groups = wine.class, ellipse = TRUE, circle = TRUE))
然后清除Disposable disposable = mApi.requestUpload(file)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> {
toast("success");
}, throwable -> {
toast("failed");
});
mCompositeDisposable.add(disposable);
onDestroyView()
但是我使用 Charles 查看所有请求,并发现在我完成片段之后该请求仍在执行。 一段时间后,文件仍成功上传。
片段关闭时如何取消通话?
答案 0 :(得分:1)
使用int wins[13];
int loses[13];
取消通话。
答案 1 :(得分:0)
定义一次性
<?xml version="1.0" encoding="UTF-8"?>
<?package de.mgo.temperaturstatistics.controller.Controller?>
<?import javafx.scene.chart.CategoryAxis?>
<?import javafx.scene.chart.LineChart?>
<?import javafx.scene.chart.NumberAxis?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.text.Font?>
<BorderPane xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.mgo.temperaturstatistics.view.DailySceneController">
<top>
<Label fx:id="titleDaily" text="Temperatur-Statistik Tagesansicht" BorderPane.alignment="CENTER">
<font>
<Font name="System Bold" size="18.0" />
</font>
</Label>
</top>
<center>
<LineChart fx:id="dailyChart" prefHeight="300.0" prefWidth="500.0" BorderPane.alignment="CENTER">
<xAxis>
<CategoryAxis fx:id="xDaily" animated="false" label="Uhrzeit" side="BOTTOM" />
</xAxis>
<yAxis>
<NumberAxis fx:id="yDaily" animated="false" autoRanging="false" label="Temperatur" lowerBound="10.0" side="LEFT" tickLabelGap="1.0" tickUnit="1.0" upperBound="30.0" />
</yAxis>
</LineChart>
</center>
</BorderPane>
分配给您的服务
private io.reactivex.disposables.Disposable mDisposable;
在行下方调用以取消/终止正在进行的API调用
mService.getResults(query)
.observeOn(AndroidSchedulers.from(Looper.getMainLooper(), true))
.subscribeOn(Schedulers.io())
.subscribe(new SingleObserver<Response<Model>>() {
@Override
public void onSubscribe(Disposable d) {
/* required */
mDisposable = d;
}
@Override
public void onSuccess(Response<Model> response) {
dismissProgress();
}
@Override
public void onError(Throwable e) {
}
});
你去了。
更新
您的情况应该是
if (mDisposable != null)
mDisposable.dispose();
答案 2 :(得分:0)
将RxJava添加到CompositeDisposable 然后在onStop() 使用一次性RxJava.dispose()