在应用内计费的示例编码中,它使用
public enum ResponseCode {
RESULT_OK,
RESULT_USER_CANCELED,
RESULT_SERVICE_UNAVAILABLE,
RESULT_BILLING_UNAVAILABLE,
RESULT_ITEM_UNAVAILABLE,
RESULT_DEVELOPER_ERROR,
RESULT_ERROR;
// Converts from an ordinal value to the ResponseCode
public static ResponseCode valueOf(int index) {
ResponseCode[] values = ResponseCode.values();
if (index < 0 || index >= values.length) {
return RESULT_ERROR;
}
return values[index];
}
}
和
int responseCode = response.getInt(Consts.BILLING_RESPONSE_RESPONSE_CODE);
boolean billingSupported = (responseCode == ResponseCode.RESULT_OK.ordinal());
对我来说,在这里使用枚举似乎很奇怪。如果枚举使用一些不同的顺序,它都会失败,我认为枚举不应该依赖于某个序数值。为什么要这样做而不只是检查返回码是否为零?
在 Android 的文档中指定的位置,例如返回码 3 是 RESULT_SERVICE_UNAVAILABLE。我只能从示例代码中猜到这一点。
谢谢。