【发布时间】:2017-04-12 07:26:57
【问题描述】:
在应用程序启动时,我点击一个服务来获取一些数据/提要,如果从这个请求中获取的数据取决于应用程序的大部分部分。
我已经检查了 Google 对跟踪代码管理器的实施。他们使用PendingResult来阻塞线程,除非时间或网络请求完成。
我也在尝试使用相同的方法,但没有太多关于 PendingResult 实际工作原理的教程。我已经完成了以下操作。
if(aManager.getContainer() == null){
PendingResult pending= aManager.init();
pending.await(10, TimeUnit.SECONDS);
}
**In AManager Class**
public PendingResult init(String containerID){
DatabaseHandler db = new DatabaseHandler(context);
fetchType= db.getFetchMode();
this.containerID= containerID;
if(fetchType== 0){
refresh();
}
return null;
}
我返回 null 因为我无法理解如何返回 PendingResult 对象?
on refresh();我使用 volley 发出网络请求
【问题讨论】:
-
PendingResult?你不是说android.content.BroadcastReceiver.PendingResult吗?那么PendingResult是什么意思? -
@pskink 我希望 `pending.await(10, TimeUnit.SECONDS);` 等待 10 秒,或者除非我得到服务的响应,一旦我得到结果,我希望应用程序执行其他任务.我不太了解
PendingResult,但我查看了 TagManager 示例,它使用 PendingResult 来执行此操作。 -
PendingResult的全类名称是什么? -
@pskink public class AManager{ public PendingResult init(String containerID){} }
-
如果您有
String类,则完整的类名是java.lang.String,对于Activity类,它是android.app.Activity,所以我的问题是:@987654334 的完整类名是什么@?
标签: java android performance android-layout android-fragments