亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

非常實(shí)用的小功能 Android應(yīng)用版本的更新實(shí)例

 更新時(shí)間:2016年08月09日 16:18:10   作者:qq_25193681  
這篇文章主要為大家詳細(xì)介紹了一個(gè)非常實(shí)用的小功能,Android應(yīng)用版本的更新實(shí)例,感興趣的小伙伴們可以參考一下

每一個(gè)應(yīng)用都是具備一個(gè)功能,那就是版本更新,我記得我之前在面試的時(shí)候,面試官讓我介紹一下應(yīng)用版本更新的一些具體操作。我當(dāng)時(shí)因?yàn)樽鲞^(guò)這個(gè)功能,所以回答的還是很流暢,現(xiàn)在我把這個(gè)分享給大家,需要能夠共同進(jìn)步。

我當(dāng)時(shí)是這么說(shuō)的:

首先呢,我們是應(yīng)該在用戶登錄后,在首頁(yè)執(zhí)行檢查版本信息的操作,具體是,獲取到本地的版本號(hào)后,提交給服務(wù)器進(jìn)行判斷,然后后臺(tái)來(lái)告訴我們當(dāng)前版本是否為最新版本,緊接著我們拿到下載地址,執(zhí)行下載的操作,具體的可以使用輸入輸出流來(lái)對(duì)文件進(jìn)行存儲(chǔ)和讀取,為了方便下載,我們還可以使用一個(gè)第三方框架:xutils,有這個(gè)框架,可以更好的實(shí)現(xiàn)斷點(diǎn)續(xù)傳等等一下功能,最后我們將下載好的文件,調(diào)用系統(tǒng)的安裝界面,進(jìn)行安裝,自此我們的更新操作全部完成,當(dāng)然,有一個(gè)很重要的地方,那就是別忘了添加權(quán)限:

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

一般情況下,這么回答就差不多可以達(dá)到效果了。

下面我們看看具體的代碼實(shí)現(xiàn),我這里以“大眾點(diǎn)評(píng)”的APP下載為案例
看看activity的操作:

public class MainActivity extends Activity {
  private ProgressDialog dialog;


  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
  }
  private void initView() {
    AlertDialog.Builder dialogTips= new AlertDialog.Builder(this);
    dialogTips.setTitle("提示");
    dialogTips.setMessage("檢測(cè)到有新的版本,是否更新?");
    dialogTips.setNegativeButton("取消", null);
    dialogTips.setPositiveButton("更新", new OnClickListener() {

      @Override
      public void onClick(DialogInterface arg0, int arg1) {
        startDownload();
      }
    });
    dialogTips.show();

    dialog=new ProgressDialog(this);
    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    dialog.setMessage("更新應(yīng)用");
    dialog.setMax(100);
  }
  private void startDownload(){
    //定義保存的文件地址為根目錄
    File path = new File(Environment.getExternalStorageDirectory(),
        "大眾點(diǎn)評(píng)"+ ".apk");
    httpDownLoad(path.getPath(), "http://www.wandoujia.com/apps/com.dianping.v1/download");

  }

  /**
   * 下載的方法
   * @param path 文件保存的路徑
   * @param url 下載的地址
   */
  private void httpDownLoad(String path, String url) {
    HttpUtils http = new HttpUtils();
    http.download(url, path, true, true, new RequestCallBack<File>() {

      @Override
      public void onStart() {
        super.onStart();
        dialog.show();
      }

      @Override
      public void onLoading(long total, long current, boolean isUploading) {
        int index = (int) (current * 100 / total);
        dialog.setProgress(index);
      }


      @Override
      public void onSuccess(ResponseInfo<File> responseInfo) {
        //獲取到安裝包后,調(diào)用系統(tǒng)的android安裝apk界面進(jìn)行安裝 這是固定格式
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(
            Uri.fromFile(new File(responseInfo.result.getPath())),
            "application/vnd.android.package-archive");
        startActivity(intent);
        dialog.dismiss();
        MainActivity.this.finish();
      }

      @Override
      public void onFailure(
          com.lidroid.xutils.exception.HttpException arg0, String arg1) {
        File path = new File(Environment.getExternalStorageDirectory(),
            "大眾點(diǎn)評(píng)" + ".apk");
        Toast.makeText(MainActivity.this, "下載失敗"+arg1, 0).show();
        dialog.dismiss();
        path.delete();
      }
    });
  }

}

這里的注釋也是相當(dāng)?shù)那逦揖筒辉谫樖?,但是有一個(gè)要注意的地方,我這里是用到了xutils的框架,所以沒(méi)有這個(gè)框架是使用不了的。

最后我附上源代碼,以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論