Java 截击前的反应时间

Java 截击前的反应时间,java,android,android-volley,progress,Java,Android,Android Volley,Progress,我试图通过将图像和视频转换成Base64(字符串)来使用截击上传它们 现在的原因是,我想向用户展示上传这些数据需要多少时间 是否有任何方法可以在点击api调用之后和获得响应之前获得截击响应时间。响应api调用所需的时间 我试过这个 private long mRequestStartTime; public void performRequest() { mRequestStartTime = System.currentTimeMillis(); // set the request sta

我试图通过将图像和视频转换成Base64(字符串)来使用截击上传它们

现在的原因是,我想向用户展示上传这些数据需要多少时间

是否有任何方法可以在点击api调用之后和获得响应之前获得截击响应时间。响应api调用所需的时间

我试过这个

private long mRequestStartTime;

public void performRequest()
{
mRequestStartTime = System.currentTimeMillis(); // set the request start 
time just before you send the request.

JsonObjectRequest request = new JsonObjectRequest(URL, PARAMS, 
    new Response.Listener<JSONObject>() 
    {
        @Override
        public void onResponse(JSONObject response) 
        {
            // calculate the duration in milliseconds
            long totalRequestTime = System.currentTimeMillis() - mRequestStartTime;
        }
    },
    new Response.ErrorListener() 
    {
        @Override
        public void onErrorResponse(VolleyError error) 
        {
            long totalRequestTime = System.currentTimeMillis() - mRequestStartTime;
        }
    });

requestQueue.add(request);
private long mRequestStartTime;
公共无效性能请求()
{
mRequestStartTime=System.currentTimeMillis();//设置请求开始
发送请求之前的时间。
JsonObjectRequest=新的JsonObjectRequest(URL、参数、,
新的Response.Listener()
{
@凌驾
公共void onResponse(JSONObject响应)
{
//以毫秒为单位计算持续时间
long totalRequestTime=System.currentTimeMillis()-mRequestStartTime;
}
},
新的Response.ErrorListener()
{
@凌驾
公共无效onErrorResponse(截击错误)
{
long totalRequestTime=System.currentTimeMillis()-mRequestStartTime;
}
});
添加(请求);
}

但通过这种方式,它给出了一次又一次的响应时间


如果有人有解决方案,请分享。

我相信volley没有提供这种现成的选项,你需要自己计算。
您需要更改上载方法,以便可以进行流式上载,以便能够计算发送的字节数。。然后,您估计的上载时间将类似于
requiredTime=totalBytes*bytesUploadedSoFar/passedTime

,正如我所说,您不需要开箱即用,您需要自己实现它。。。所以您需要创建一个类似于这里的流