App版本更新介面的設計

2021-08-19 17:23:30 字數 1351 閱讀 4754

- 間接是指提供你後台最新版本號,讓你自己與本地版本號通過比較得出是否公升級;

- 直接就是後台介面直接返回個boolean型別告訴你是強制或者非強制更新。

如感覺排版看著不舒服,前往

總欄位如下(並不是所有欄位都要返回給客戶端):

1.最新版本號 :newversion

2.最小支援版本號 : minversion

4.更新文案 : updatedescription

5.是否有更新 : isupdate

6.是否強制更新 : forceupdate

可選字段:

7.apk檔案大小:apksize

8.apk的檔案md5值:md5

**方案一(後端處理邏輯):**

在客戶端請求引數中新增當前版本號currentversion傳輸給後台,由後台根據客戶端傳過來的當前版本號currentversion做相應的判斷後給出是否強制更新。

**後端邏輯如下:**

1. 如果currentversion < newversion,則isupdate = true;

- 如果currentversion < minversion,則forceupdate = true;

- 如果currentversion >= minversion,則forceupdate = false;

- 如果有特殊需求可指定某個版本必須強制更新,如currentversion == ***,則forceupdate = true;

2. 如果currentversion == newversion,則isupdate = false.

**結論:**

**方案二(前端處理邏輯):**

客戶端邏輯如下:

1. 如果currentversion < newversion,則有更新資訊;

- 如果currentversion < minversion,則需要強制更新;

- 如果currentversion >= minversion,則不需要強制更新;

2. 如果currentversion == newversion,則沒有更新資訊。

****

**總結:**

細心的你可能會發現上面的可選字段apksize和md5並沒有用到,既然是可選字段也就是可用可不用,根據需要決定是否採用,這裡來講下他們的用處。

+ **apk檔案大小apksize**

+ **apk的檔案md5值**

綜上所述,這個版本更新的處理邏輯客戶端和後端誰來做都可以,無關乎懶不懶的問題,個人感覺靈活性後端比客戶端方便多了,畢竟後端可以指定minversion與newversion中間的任意乙個版本強制更新,而客戶端做起來就沒有那麼靈活了,個人見解,如有更好的方案,歡迎指教。

非同步更新介面方法

中頻繁出現下面描述的模式,某些操作呼叫服務端介面獲取資料 執行複雜的資料解析,這些操作不能阻塞ui執行緒,必須非同步執行,但通常這些操作執行完後需要對介面元素進行更新。就是這麼個模式在 中頻繁出現。之前 解決此問題的方式是使用thread,一般流程是下面這樣 工作任務一般在模型中有封裝,這些操作是阻...

MFC利用執行緒更新介面

error c2665 afxbeginthread 2 個過載中沒有乙個可以轉換所有引數型別 1.執行緒函式 必須是 靜態類成員函式 或者 全域性函式 cwinthread pthread afxbeginthread connectfunc,lpvoid this static uint con...

MFC 利用執行緒更新介面

非常感謝 baiyin 的文章 mfc在其他執行緒中重新整理主對話方塊中edit等控制項資料 正在進行的專案中,要在新開啟的執行緒中處理資料,並把資料的處理結果在介面控制項中更新,所以需要使資料處理執行緒傳送訊息給介面,下面是乙個小例子 1 在mfc的對話方塊中,新增乙個文字編輯框控制項 edit ...