亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Android中利用IntentService對apk進行更新

發布時間:2021-03-29 17:02:47 來源:億速云 閱讀:126 作者:Leah 欄目:移動開發

怎么在Android中利用IntentService對apk進行更新?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

創建廣播

public static class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
      switch (intent.getAction()) {
        case ACTION_TYPE_PREPARE:
          if (downloadCallback != null) {
            downloadCallback.onPrepare();
          }
          break;
        case ACTION_TYPE_PROGRESS:
          int progress = intent.getIntExtra("progress", 0);
//          Log.d("progress", "|- " + progress + " -|");
          if (downloadCallback != null) {
            downloadCallback.onProgress(progress);
          }
          break;
        case ACTION_TYPE_COMPLETE:
          String file_path = intent.getStringExtra("file_path");
          if (!TextUtils.isEmpty(file_path)) {
            File file = new File(file_path);
            if (file.exists()) {
              if (downloadCallback != null) {
                downloadCallback.onComplete(file);
              }
            }
          }
          break;
        case ACTION_TYPE_FAIL:
          String error = intent.getStringExtra("error");
          if (downloadCallback != null) {
            downloadCallback.onFail(error + "");
          }
          break;
      }
    }

然后在IntentService中初始化本地廣播并發送信息

@Override
  public void onCreate() {
    super.onCreate();
    mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
  }
  
  // 在下載進度刷新的地方進行回調
  private void progress(int progress) {
    Intent intent = new Intent(FileDownloaderManager.ACTION_TYPE_PROGRESS);
    intent.putExtra("progress", progress);
    mLocalBroadcastManager.sendBroadcast(intent);
  }
  
  private void downApk(String url) {
  .....
  .....
   progress(progress);
  .....
  .....
  }

在activity中使用

mLocalBroadcastManager = LocalBroadcastManager.getInstance(mContext);
mBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ACTION_TYPE_PREPARE);
intentFilter.addAction(ACTION_TYPE_PROGRESS);
intentFilter.addAction(ACTION_TYPE_COMPLETE);
intentFilter.addAction(ACTION_TYPE_FAIL);
mLocalBroadcastManager.registerReceiver(mBroadcastReceiver, intentFilter);
// ondestory時調用
mLocalBroadcastManager.unregisterReceiver(mBroadcastReceiver);

以上源碼已進行封裝,方便使用具體操作步驟如下:

|- 初始化及注冊回調

//初始化文件下載管理類
FileDownloaderManager.init(context)
// 注冊下載進度監聽,并開啟廣播接收
FileDownloaderManager.registerDownload(object : FileDownloaderManager.DownloadCallback {
      override fun onComplete(file: File) = mainView.downloadSucc(file)

      override fun onFail(msg: String?) = Unit

      override fun onProgress(progress: Int) = mainView.onProgress(progress)

      override fun onPrepare() = Unit

    })
//開始下載
FileDownloaderManager.download(url)

|- 在下載完成后進行資源重置

FileDownloaderManager.unbinder()

看完上述內容,你們掌握怎么在Android中利用IntentService對apk進行更新的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

石屏县| 聂拉木县| 阿巴嘎旗| 商丘市| 黄石市| 舟山市| 江山市| 垦利县| 吴江市| 马尔康县| 平度市| 安吉县| 历史| 仙游县| 施秉县| 怀仁县| 玉环县| 湘乡市| 三穗县| 呼和浩特市| 迁安市| 石首市| 贵港市| 西宁市| 久治县| 南投市| 密云县| 临朐县| 普定县| 晋江市| 辉县市| 丰镇市| 太和县| 乌鲁木齐县| 青铜峡市| 囊谦县| 建瓯市| 鄂托克旗| 金堂县| 唐海县| 麻江县|