【发布时间】:2017-05-24 14:02:48
【问题描述】:
所以,我有以下代码:
try{
....
if(serverResp.isSucces()){
callbackListener.onDataLoaded(serverResp);
}
}catch(Exception e){
//...do whatever I have to
}finally{
urlConnection.disconnect();
}
我的问题是,何时调用 urlConnection.disconnect?大多数带有 finally 的示例解释了在 return 的情况下何时调用它。我理解这种情况,但在这里我没有回报,只能打电话给听众。 在大多数情况下,侦听器回调会触发一个新的 Activity 启动。我想确定,我之前的所有连接都已关闭!
所以主要问题是:
- finally get调用时,如果没有return,只有listener回调?
- 这是关闭 urlConnection 的正确方法吗?
【问题讨论】:
-
不,这个用return解释
-
我认为做一些测试看看它是否被调用会很容易。
-
最后被调用 1) 正常执行没有错误,2) try 块出错 3) catch 块也出错
-
好的,但是如果监听器启动一个持续 10 分钟的循环会怎样。 finally 是在那 10 分钟之后还是之前执行的?