我的应用程序登录页面有3个异步HTTP调用,一旦应用程序打开就会调用它们。我想知道的是不渲染应用程序所需的时间(可以通过在活动生命周期事件上设置计时器来完成)但是所有> HTTP调用已完成。
因此,如果call1需要100ms,call2需要200ms而call3需要150ms,那么页面加载时间将为200ms(加上渲染所需的额外时间)
在网络世界中,我可以使用javascript promises来设置在所有异步调用完成时调用的代码。我可以在Android中做类似的事情吗?
答案 0 :(得分:1)
您可以在活动中添加静态字段并使其不稳定。
public static volatile int TOTAL_TIME = 0;
然后从计算每个异步任务的时间开始。您可以通过获取doInBackground()开头的当前时间并将其与返回值之前的时间进行比较来实现。然后将差异添加到该静态字段。
MyActivity.TOTAL_TIME+=difference;
答案 1 :(得分:0)
你也可以在@Pedro Oliveira Solution旁边
您可以在第一个请求中以doInBackground()
方法保存开始时间,而不是计算每个onStart()
方法,并将时间保存在onSuccess()
,onFailure()
,{{1在最后一个请求中然后减去两次以获得两者之间的增量时间。