Android 獲取伺服器與客戶端時差的例項程式碼

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

一般我們在做商品倒計時的時候會遇到要從後臺獲取商品的開始時間和結束時間,還要計算商品距離開始時間的倒計時和結束時間的倒計時,但是這樣只是從後臺獲取到開始時間,還要再和手機系統的時間相減,才能獲取到開始時間的倒計時,那問題來了,如果使用者在手機上改了時間呢?是不是就會產生誤差,很可能其他人還沒開始,就已經有人可以搶購了,這樣的體驗效果就很差了,所以我們不僅要計算開始時間與當前時間的時差,還要計算伺服器與客戶端的時差,說了這麼多,還是上程式碼吧:

1.在專案啟動的時候獲取時差並儲存


/**
* 獲取時差並儲存
* @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();
//發出連線
uc.connect();
//獲取伺服器時間
long serverTime = uc.getDate();
//獲取伺服器時間與手機系統時間的時差
long differenceTime = serverTime - System.currentTimeMillis();
//儲存時差
SaveUtil.getInstance(context).setDifferenceTime(differenceTime);
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}

2.Adapter中計算開始時間倒計時


//獲取列表中商品的開始時間
String startTimeStr = list.get(position).getStartTime();
long startTime = stringToLong(startTimeStr);
//活動開始時間-手機時間-伺服器時間與手機時間的相差值 = 活動開始倒計時
long remainingTime = startTime - System.currentTimeMillis() - SaveUtil.getInstance(mContext).getDifferenceTime();

結束時間與上述方法相同,就不再次粘程式碼了。我知道需要需要改進的地方還有很多,大家不要噴的太厲害了~

以上這篇Android 獲取伺服器與客戶端時差的例項程式碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援指令碼之家。

您可能感興趣的文章:

android獲取時間差的方法android-獲取網路時間、獲取特定時區時間、時間同步的方法Android獲取系統時間以及網路時間Android程式設計獲取網路時間例項分析Android獲取系統時間的多種方法

相關文章

Android 開發 最新文章