实际上,当我使用带有无线电频率的设备时,我的应用程序出了问题。如果设备超出了无线电范围,但试图发送一个文件,我就会得到onFailure,在这里,我对用户说,没有网络,但是的主要问题是,一旦设备返回到无线范围,它就会返回它发送的网络,我离开网络时试图发送的文件也会返回。
因此,我可以取消调用onFailure,但尝试放置call.cancel();onFailure不能工作。
我怎样才能解决这个问题?
发布于 2019-01-16 12:07:14
您可以扩展回调类以创建您自己的类CancellableCallback,如下所示:
public class CancellableCallback<T> implements Callback<T> {
private Callback<T> callback;
private boolean canceled;
private CancellableCallback() {}
public CancellableCallback(Callback<T> callback) {
this.callback = callback;
canceled = false;
}
public void cancel() {
canceled = true;
callback = null;
}
@Override
public void success(T o, Response response) {
if (!canceled) {
callback.success(o, response);
}
}
@Override
public void failure(RetrofitError error) {
if (!canceled) {
callback.failure(error);
}
}
https://stackoverflow.com/questions/53765732
复制相似问题