Robospice RequestListener 不适用于离线任务

Robospice RequestListener does not work with offline task

我遇到了很奇怪的问题。我正在尝试将 Robospice 用于非网络任务 (JSON serialization/deserialization)。

我已经实现了 SpiceService(基于 Robospice github 的离线示例)和 Requests - 在 loadDataFromNetwork() 中进行序列化。

我在 OnStart() 和 OnStop() 中启动和停止 SpiceManager。

我的问题是请求正在执行,但 侦听器未被触发(None OnRequestSuccess 和 OnRequestFailure 方法被触发)

这是负责执行任务的代码行

 manager.execute(saveRequest, new SaveRequestListener());

和我的听众

private class SaveRequestListener implements com.octo.android.robospice.request.listener.RequestListener<Boolean> {
    @Override
    public void onRequestFailure(SpiceException spiceException) {
        Log.d("saving",spiceException.getMessage());
        Toast.makeText(getActivity(),"Some error :(((", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRequestSuccess(Boolean aBoolean) {
        Log.d("saving","Saved!!! " + aBoolean);
        Toast.makeText(getActivity(),"Saved!!! " + aBoolean, Toast.LENGTH_SHORT).show();
    }
}

在 android studio 中尝试 ctrl+i 或 ctrl+o 来重新实现这些方法。并检查方法的输入输出类型。

您是否有可能在等待回调之前停止 SpiceManager

在这种情况下,请求将完成,因为它已经开始,但 RequestListener 将永远不会被调用,因为请求侦听器会自动分离。它以这种方式工作,以确保上下文不会泄漏。