国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

非常實用的小功能 Android應用版本的更新實例

2019-12-12 05:45:09
字體:
來源:轉載
供稿:網友

每一個應用都是具備一個功能,那就是版本更新,我記得我之前在面試的時候,面試官讓我介紹一下應用版本更新的一些具體操作。我當時因為做過這個功能,所以回答的還是很流暢,現在我把這個分享給大家,需要能夠共同進步。

我當時是這么說的:

首先呢,我們是應該在用戶登錄后,在首頁執行檢查版本信息的操作,具體是,獲取到本地的版本號后,提交給服務器進行判斷,然后后臺來告訴我們當前版本是否為最新版本,緊接著我們拿到下載地址,執行下載的操作,具體的可以使用輸入輸出流來對文件進行存儲和讀取,為了方便下載,我們還可以使用一個第三方框架:xutils,有這個框架,可以更好的實現斷點續傳等等一下功能,最后我們將下載好的文件,調用系統的安裝界面,進行安裝,自此我們的更新操作全部完成,當然,有一個很重要的地方,那就是別忘了添加權限:

    <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"/>

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

下面我們看看具體的代碼實現,我這里以“大眾點評”的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("檢測到有新的版本,是否更新?");    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("更新應用");    dialog.setMax(100);  }  private void startDownload(){    //定義保存的文件地址為根目錄    File path = new File(Environment.getExternalStorageDirectory(),        "大眾點評"+ ".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) {        //獲取到安裝包后,調用系統的android安裝apk界面進行安裝 這是固定格式        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(),            "大眾點評" + ".apk");        Toast.makeText(MainActivity.this, "下載失敗"+arg1, 0).show();        dialog.dismiss();        path.delete();      }    });  }}

這里的注釋也是相當的清晰,我就不在贅述,但是有一個要注意的地方,我這里是用到了xutils的框架,所以沒有這個框架是使用不了的。

最后我附上源代碼,以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松滋市| 教育| 平谷区| 张家口市| 封开县| 台前县| 喀喇| 樟树市| 门头沟区| 福清市| 博爱县| 双峰县| 荔波县| 汉中市| 宜州市| 济宁市| 从化市| 库尔勒市| 腾冲县| 江山市| 乡城县| 泰宁县| 修文县| 本溪市| 成都市| 榆社县| 启东市| 邵东县| 余江县| 高州市| 十堰市| 平潭县| 教育| 临清市| 枞阳县| 兴海县| 柏乡县| 鄂尔多斯市| 禄劝| 中超| 方正县|