在我阅读Verifying Back-End Calls from Android Apps
(http://android-developers.blogspot.tw/2013/01/verifying-back-end-calls-from-android.html)之后,我也阅读了Google Play services and OAuth Identity Tools
(http://android-developers.blogspot.tw /2012/09/google-play-services-and-oauth-identity.html)它说
“您应该在每组 GET 或 POST 之前调用 GoogleAuthUtil.getToken() 以获取令牌;适当地缓存内容以及处理令牌到期和刷新是很聪明的。”
读完这句话,我有三个问题。
- 因为需要
GoogleAuthUtil.getToken()
在每组 GET 或 POST 之前调用来获取令牌,所以我想知道是否GoogleAuthUtil.getToken()
是线程安全的。
假设一个场景,我需要在后台定期与我的服务器同步。每次我通过一组 HTTP 请求与我的服务器联系之前,我需要调用GoogleAuthUtil.getToken()
以便可以使用有效令牌发送请求。
另一方面,当用户与我的应用程序交互时,我也需要做同样的事情:调用GoogleAuthUtil.getToken()
获取令牌并将其与一组 HTTP 请求一起发送到我的服务器。因为用户可能在后台同步进行时与应用程序交互,GoogleAuthUtil.getToken()
可能会同时在两个不同的线程中调用。因此,我想知道 getToken() 是否是线程安全的。
2.有没有办法可以获取令牌到期时间,以便我可以缓存令牌?我检查了文档(http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html)没有这样的方法。
3.是否应该刷新返回的token GoogleAuthUtil.getToken()
?如果是,有没有办法做到这一点?或者,GoogleAuthUtil.getToken()
每次需要有效令牌时我都应该打电话吗?