真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站制作、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的東興網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

創(chuàng)建廣播

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中初始化本地廣播并發(fā)送信息

@Override
  public void onCreate() {
    super.onCreate();
    mLocalBroadcastManager = LocalBroadcastManager.getInstance(this);
  }
  
  // 在下載進度刷新的地方進行回調(diào)
  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時調(diào)用
mLocalBroadcastManager.unregisterReceiver(mBroadcastReceiver);

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

|- 初始化及注冊回調(diào)

//初始化文件下載管理類
FileDownloaderManager.init(context)
// 注冊下載進度監(jiān)聽,并開啟廣播接收
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()

看完上述內(nèi)容,你們掌握怎么在Android中利用IntentService對apk進行更新的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享名稱:怎么在Android中利用IntentService對apk進行更新
網(wǎng)頁鏈接:http://weahome.cn/article/pehohi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部