Android 獲取服務(wù)器與客戶端時(shí)差的實(shí)例代碼
一般我們在做商品倒計(jì)時(shí)的時(shí)候會(huì)遇到要從后臺獲取商品的開始時(shí)間和結(jié)束時(shí)間,還要計(jì)算商品距離開始時(shí)間的倒計(jì)時(shí)和結(jié)束時(shí)間的倒計(jì)時(shí),但是這樣只是從后臺獲取到開始時(shí)間,還要再和手機(jī)系統(tǒng)的時(shí)間相減,才能獲取到開始時(shí)間的倒計(jì)時(shí),那問題來了,如果用戶在手機(jī)上改了時(shí)間呢?是不是就會(huì)產(chǎn)生誤差,很可能其他人還沒開始,就已經(jīng)有人可以搶購了,這樣的體驗(yàn)效果就很差了,所以我們不僅要計(jì)算開始時(shí)間與當(dāng)前時(shí)間的時(shí)差,還要計(jì)算服務(wù)器與客戶端的時(shí)差,說了這么多,還是上代碼吧:
1.在項(xiàng)目啟動(dòng)的時(shí)候獲取時(shí)差并保存
/** * 獲取時(shí)差并保存 * @param context */ public static void getDifferenceTime(final Context context){ new Thread(new Runnable() { @Override public void run() { try { URL url = new URL(CONTENT_URL); //生成URLConnection連接對象 URLConnection uc = url.openConnection(); //發(fā)出連接 uc.connect(); //獲取服務(wù)器時(shí)間 long serverTime = uc.getDate(); //獲取服務(wù)器時(shí)間與手機(jī)系統(tǒng)時(shí)間的時(shí)差 long differenceTime = serverTime - System.currentTimeMillis(); //保存時(shí)差 SaveUtil.getInstance(context).setDifferenceTime(differenceTime); } catch (Exception e) { e.printStackTrace(); } } }).start(); }
2.Adapter中計(jì)算開始時(shí)間倒計(jì)時(shí)
//獲取列表中商品的開始時(shí)間 String startTimeStr = list.get(position).getStartTime(); long startTime = stringToLong(startTimeStr); //活動(dòng)開始時(shí)間-手機(jī)時(shí)間-服務(wù)器時(shí)間與手機(jī)時(shí)間的相差值 = 活動(dòng)開始倒計(jì)時(shí) long remainingTime = startTime - System.currentTimeMillis() - SaveUtil.getInstance(mContext).getDifferenceTime();
結(jié)束時(shí)間與上述方法相同,就不再次粘代碼了。我知道需要需要改進(jìn)的地方還有很多,大家不要噴的太厲害了~
以上這篇Android 獲取服務(wù)器與客戶端時(shí)差的實(shí)例代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android裁剪圖片為圓形圖片的實(shí)現(xiàn)原理與代碼
這個(gè)方法是根據(jù)傳入的圖片的高度(height)和寬度(width)決定的,如果是 width <= height時(shí),則會(huì)裁剪高度,裁剪的區(qū)域是寬度不變高度從頂部到寬度width的長度2013-01-01Android中使用BitmapShader類來制作各種圖片的圓角
這篇文章主要介紹了Android中使用BitmapShader類來制作各種圖片的圓角的方法,文中隨教程講解帶出的例子可以輕松控制圖片圓形的變換,很好很強(qiáng)大,需要的朋友可以參考下2016-04-04android完美實(shí)現(xiàn) 拍照 選擇圖片 剪裁等代碼分享
本文給大家分享了2個(gè)安卓實(shí)現(xiàn)實(shí)現(xiàn) 拍照 選擇圖片 剪裁等的代碼,都是從正式項(xiàng)目中提取出來了,非常實(shí)用,有需要的小伙伴可以參考下。2016-01-01Android AlertDialog多種創(chuàng)建方式案例詳解
這篇文章主要介紹了Android AlertDialog多種創(chuàng)建方式案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08Android Support Library 標(biāo)題欄(Toolbar)滾動(dòng)效果實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狝ndroid Support Library 標(biāo)題欄(Toolbar)滾動(dòng)效果實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03Android8.1 源碼修改之插入SIM卡默認(rèn)啟用Volte功能
這篇文章主要介紹了Android8.1 源碼修改之插入SIM卡默認(rèn)啟用Volte功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05Android控件ImageSwitcher實(shí)現(xiàn)左右圖片切換功能
這篇文章主要為大家詳細(xì)介紹了Android控件ImageSwitcher實(shí)現(xiàn)左右圖片切換功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05