在docs on server response extras中,我发现了这个:
当网络问题阻止或中断许可证检查时,Android Market客户端会通过向Policy的processServerResponse()方法返回“RETRY”响应代码来通知应用程序。在系统问题的情况下,例如当应用程序无法与Android Market的ILicensingService实现绑定时,LicenseChecker库本身会使用“RETRY”响应代码调用Policy processServerResonse()方法。
不幸的是,RETRY没有列出服务器返回的listed response codes之一,当我查看LVL源代码时,看来Android Market客户端实际上返回了一个服务器响应代码,它是库中的LicenseValidator类决定何时将其转换为RETRY响应状态。
此外,在section on implementing a custom policy中,指南中有以下内容:
请注意,Android Market客户端会自动重试失败的请求,因此在大多数情况下,您的策略无需重试。
我发现这令人困惑。客户端是仅报告一个记录的服务器响应代码,还是更多?例如,如果设备处于飞行模式,自定义策略是否需要处理RETRY或ERROR_CONTACTING_SERVER?策略(或应用程序)是否应该处理重试,或者客户端是否自动执行此操作?