sil*_*war 5 android android-fragments
我正在开发一个涉及几个片段的应用程序.在每个片段中,我必须调用Web服务来获取数据.
目前我从Fragment的onCreateView()方法调用Web服务.问题无论何时进行Web服务调用并且如果更改了设备方向,我都会收到新的Web服务调用开始调用.
我想这可能是因为onCreateView()方法在配置更改时被调用.
我该怎么解决这个问题.我应该使用哪种生命周期方法来调用Web服务,以便只调用一次
我已经通过以下解决方法解决了这个问题
为每个 Web 服务调用方法创建操作标识符。例如,用于登录调用的“身份验证”
创建一个 ArrayList 对象,例如 currentTasks
ArrayList<String> currentTasks = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)在我调用 Web 服务的每个方法中,检查相应方法的操作标识符是否已存在于 ArrayList 中。如果没有则开始操作。
String operationId = "Authentication";
if(currentTasks.indexOf(operationId) == -1)
{
<do web service call operation here>
currentTasks.add(operationId);
}
Run Code Online (Sandbox Code Playgroud)接收上述操作响应的方法,从 ArrayList 中删除操作标识符
if(currentTasks.indexOf("Authentication") != -1){
currentTasks.remove("Authentication");
}
Run Code Online (Sandbox Code Playgroud)这将确保调用不会转到当前正在进行的 Web 方法。
我知道这不是实现它的最佳方法,也可能不是要遵循的最佳实践,但目前这对我有用。
| 归档时间: |
|
| 查看次数: |
1416 次 |
| 最近记录: |