文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

非常实用的小功能 Android应用版本的更新实例

2022-06-06 07:56

关注

每一个应用都是具备一个功能,那就是版本更新,我记得我之前在面试的时候,面试官让我介绍一下应用版本更新的一些具体操作。我当时因为做过这个功能,所以回答的还是很流畅,现在我把这个分享给大家,需要能够共同进步。

我当时是这么说的:

首先呢,我们是应该在用户登录后,在首页执行检查版本信息的操作,具体是,获取到本地的版本号后,提交给服务器进行判断,然后后台来告诉我们当前版本是否为最新版本,紧接着我们拿到下载地址,执行下载的操作,具体的可以使用输入输出流来对文件进行存储和读取,为了方便下载,我们还可以使用一个第三方框架: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");
  }
  
  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的框架,所以没有这个框架是使用不了的。

最后我附上源代码,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

您可能感兴趣的文章:Android编程实现自动检测版本及自动升级的方法android实现程序自动升级到安装示例分享(下载android程序安装包)Android编程实现应用自动更新、下载、安装的方法Android App实现应用内部自动更新的最基本方法示例安卓(Android)应用版本更新方法Android应用自动更新功能实现的方法Android应用APP自动更新功能的代码实现Android应用强制更新APP的示例代码Android应用App更新实例详解Android应用更新之自动检测版本及自动升级


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯