日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

java实现断点续传_Android 强升逻辑和实现

發布時間:2023/12/18 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现断点续传_Android 强升逻辑和实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:愛好裝逼的 梁飛

“強制升級”會中斷用戶操作,阻礙正常使用,看似是一個不光彩的行為,但是智者千慮必有一失,我們無法保證 App 的正確性,在某些緊急情況下,強制升級還是非常必要的,而且接入的時間越早越好。

有贊微商城 App 早期版本只提供了一個更新提示的對話框,并不會強制用戶更新。隨著后端網關升級,一些老的服務需要下線,但是新版本到達率并不理想,繼續維護老接口帶來一定成本,而且新功能也無法觸及用戶。

為了提升版本到達率,我們重新梳理了強制升級的邏輯。

升級過程中首先要保證 apk 的下載成功率,下載完成之后要及時彈出安裝頁面,為了防止下載失敗,也要提供市場下載的選項,這樣一定程度上也能保證升級之后渠道的一致性。

  • 更新對話框需要展示標題、內容和動作按鈕。

  • 狀態欄下載通知需要展示應用名字和描述。

構造參數

業務方需要提供的參數:

public

使用 DownloadManager 下載 apk

為了提高下載成功率,我們使用了系統 Service - DownloadManager,因為是獨立進程,不會增加 App 占用的系統開銷。

如果 DownloadManager 被系統禁用,那直接跳轉到瀏覽器去下載。

private

注冊監聽下載完成的 Receiver

我們通過一個全局的 Receiver 來接收下載完成的廣播,這樣即使 App 進程被殺死,依然可以彈出安裝界面。

<receiver

接收到廣播之后,彈出安裝界面。

private

注意此處有坑,在 SDK >= 24 的系統中,Intent 不允許攜帶 file:// 格式的數據,只能通過 provider 的形式共享數據。

所以我們還需要注冊一個 FileProvider。

FileProvider 在 Android N 上的應用?zhuanlan.zhihu.com<provider

${applicationId}$ 是 AndroidManifest.xml 中的占位符,gradle 會進行替換。

android:authorities="${applicationId}.provider"

對應 Java 代碼:

FileProvider

注意:Java 代碼中 getPackageName() 的返回值是 ApplicationId,具體可參考 ApplicationId 與 PackageName 的區別。

完整版代碼:LyndonChin/ZanAppUpdater
原文鏈接:Android 強升邏輯和實現

我們積極擁抱新技術,不給自己設邊界,勇于跳出舒適區
iOS/Android 開發可投簡歷至 liangfei@youzan.com(微信:feelang )

總結

以上是生活随笔為你收集整理的java实现断点续传_Android 强升逻辑和实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。