为其赋值

时间:2015-06-14 17:28:56

标签: java android string

所以我有这段代码:

String query = null;

public String createConnection() {

    new NetworkRequest(new ResultFromAsync() {
        @Override
        public void taskCompleted(String result) {
            query = result;
        }
    }).execute();

    return query;
}

我遵循MVP设计模式,从我的View中调用它在Button Click事件中调用此方法,该方法执行并从Model创建网络请求,然后在线调试时将JSON检索为String " query = result;"它实际上将结果变量中存储的内容分配给查询,但是当它到达行"返回查询时;"它等于null。

是否有人理解为什么在将查询分配给结果变量的值时将其设置为null?

1 个答案:

答案 0 :(得分:0)

query赋值的方法是异步执行的,这意味着在异步请求完成之前调用execute()不会阻塞当前线程,而是立即返回。您当时的变量值仍为null。您无法返回您尚未拥有的值。

考虑调用需要taskCompleted()回调中的值的代码。