Hay*_*yan 2 performance android request android-fragments retrofit
我使用翻新,并且有2个片段(片段A,片段B)。在每个片段中,我有2个请求(对于片段A,该请求称为请求A1,requestA2)。因此,我打开了我的应用程序并打开了片段A。在此之后,异步启动了请求A1和请求A2。因此,在此之后,我将打开Fragment B,并继续进行请求。(请求B1和B2)。但是,如果我打开片段B,然后快速单击“后退”按钮返回片段A,那么请求B1和B2是否会继续异步工作?还是改装会自动取消碎片销毁的请求?所以我需要在背面印刷机上写这样的东西吗?
if(call != null) {
call.cancel();
}
Run Code Online (Sandbox Code Playgroud)
如我所知,改装不这样做,您必须首先在两个片段中将调用创建为全局变量,然后在您认为不再需要该调用或要取消和续订该调用的所有位置取消该调用。
private Call<Response> mCall;
//...onCreateView() and other codes
@Override
public void onDestroyView() {
if(mCall!= null && mCall.isExecuted()) {
mCall.cancel();
}
}
Run Code Online (Sandbox Code Playgroud)
并对其进行检查,onFailure()以防止发生一些我遇到的错误
@Override
public void onFailure(@NonNull Call<T> call, @NonNull Throwable t) {
if (call.isCanceled()) {
//do nothing
}else {
//show some thing to user ui
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
219 次 |
| 最近记录: |