RoboSpice RequestProgress会更新,但不会调用requestSuccess

时间:2012-11-20 11:36:05

标签: android rest android-networking robospice

我有一个运行RoboSpice的简单演示。

它是扩展SpringAndroidContentService的默认服务,可以在他们的github上找到。

奇怪的是,当我发送请求时,Progress会更新,但我最终没有接到onRequestSuccess的电话,这是一个简单的Toast。

我检查了LogCat,没有例外。以下是相关代码:

/* RestContentRequest overrider */
@Override
public String loadDataFromNetwork() throws Exception {
    RestTemplate restTemplate = getRestTemplate();
    try {
        String response= restTemplate.getForObject(
            "http://xxx.xxx/mobile.html", String.class);
        //does not get called
        Log.d(LOGTAG, response); 
        return response;
    } catch (HttpClientErrorException e) {
        //Does not get called
        Log.e(LOGTAG, e.toString());
        return e.getLocalizedMessage();
    }
}

private class RequestListener implements RequestListener<String>, RequestProgressListener {

    @Override
    public void onRequestFailure(SpiceException exception) {
        //Does not get called
        debug.setText(exception.getLocalizedMessage());
    }

    @Override
    public void onRequestSuccess(String response) {
        //Does not get called
        Toast.makeText( LoginActivity.this, response, Toast.LENGTH_SHORT ).show();
    }

    @Override
    public void onRequestProgressUpdate(RequestProgress progress) {
            //Gets called
            debug.setText(convertProgressToString(progress));
    }

    private String convertProgressToString( RequestProgress progress ) {
        String status = "";
        switch ( progress.getStatus() ) {
            case READING_FROM_CACHE:
                status = "? cache -->";
                break;
            case LOADING_FROM_NETWORK:
                status = "^ network ^";
                break;
            case WRITING_TO_CACHE:
                status = "--> cache";
                break;

            default:
                status = "";
                break;

        }
        return status;
    }

}

这可能是什么原因?它只需要读取一个带有字符串的页面。 (纯/文本)

1 个答案:

答案 0 :(得分:0)

我不知道你试过哪个版本的RoboSpice,但它肯定适用于RoboSpice。你介意试一试吗?最后一个稳定版本是1.3.1。

你在Stack Over Flow上有一个RoboSpice问题,请通知我或标记它。