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

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

我当时是这么说的:

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

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索Android版本更新
android 更新版本功能、实用新型专利实例、css实用实例、jquery 实用实例、access数据库实用实例,以便于您获取更多的相关知识。

时间: 2024-08-22 14:43:57

非常实用的小功能 Android应用版本的更新实例_Android的相关文章

Instagram新增圈人功能 Android和iOS同步更新

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; Instagram被 Facebook收购后持续强化社交功能,除了按赞能同步到脸书外,稍早推出的更新版本,用户也可为照片加注人名啦! Android和iOS版本同步更新,立刻来试试!(全文图片以iOS版本示范) ▲用户更新过后,在个人档案画面就可看到 新的分类,每当有人拍照并标注你的照片都会收集在此页面,用户要圈人也很简单,编辑完照片后,多了点选"加人名&

Android ListView ImageView实现单选按钮实例_Android

做Android开发两年的时间,技术稍稍有一些提升,刚好把自己实现的功能写出来,记录一下,如果能帮助到同行的其他人,我也算是做了件好事,哈哈!!废话不多说,先上个图. 先上一段代码: 1 if (lastposition == position){ 2 viewHolder.setImageResource(R.id.iv_yuandian1,R.mipmap.ic_button_checked); 3 } else { 4 viewHolder.setImageResource(R.id.iv

Android自定义TitleView标题开发实例_Android

Android开发过程中,经常遇到一个项目需要重复的定义相同样式的标题栏,Android相继推出了actionBar, toolBar, 相信有用到的朋友也会遇到一些不如意的时候,比如标题栏居中时,需要自定义xml文件给toolBar等,不了解actionBar,toolBar的可以去找相应的文章了解,这里介绍自定义titleBar满足国内主题风格样式的情况. 为了提前看到效果,先上效果图: 前期准备 1.为标题栏titleView预定义id,在values下的ids.xml中 <?xml ve

Android圆形旋转菜单开发实例_Android

最近帮朋友做了一个动画菜单,感觉有一定的实用价值,就在此给大家分享一下,先看看效果: 实现思路: 从图中可以看出,这三个(或更多,需要自己再实现)菜单是围绕着中心点旋转的,旋转分为2层,背景旋转和菜单旋转,背景旋转可以直接用旋转动画来实现:菜单的旋转是在以中心点为圆心的圆环上,所以这里用了根据旋转角度求此点在直角坐标系中的坐标点的函数(x = r * cos(rotation* 3.14 / 180) 和y = r * sin(rotation* 3.14 / 180) ),然后根据获取到的点的

Windows 7的4个实用的小功能

咱们在平时使用Word2000/2002编辑.打印教案或试卷时,经常要用到"页面设置"命令.最一般的操作技巧是:执行"文件→页面设置"菜单命令.其实,咱们完全能够将"页面设置"放进Word右键菜单,这样能够给咱们的操作带来很大的方便. 起初,打开Word2000/2002,执行"工具→自定义"菜单命令,在弹出的"自定义"对话框中,单击"工具栏"选择卡,在其下的下拉列表框中选择"

JS小功能(button选择颜色)简单实例_javascript技巧

效果: 代码: 复制代码 代码如下: <head runat="server">    <title></title>    <style type="text/css">        #red        {            width: 260px;            height: 200px;            background: #FF0000;            display:

JS小功能(offsetLeft实现图片滚动效果)实例代码_javascript技巧

效果: 代码: 复制代码 代码如下: <head runat="server">    <title></title>    <style type="text/css">        #div1        {            width: 245px;            height: 150px;            background: red;            margin: 250p

android Handler详细使用方法实例_Android

开发环境为android4.1.Handler使用例1这个例子是最简单的介绍handler使用的,是将handler绑定到它所建立的线程中.本次实验完成的功能是:单击Start按钮,程序会开始启动线程,并且线程程序完成后延时1s会继续启动该线程,每次线程的run函数中完成对界面输出nUpdateThread...文字,不停的运行下去,当单击End按钮时,该线程就会停止,如果继续单击Start,则文字又开始输出了. 软件界面如下: 实验主要部分代码和注释: MainActivity.java: 复

Android 应用指定浏览器开发实例_Android

  本文主要讲解Android浏览器的开发实例,有三部分内容:启动Android默认浏览器.指定浏览器进行访问以及打开本地的html文件.        一.启动Android默认浏览器 Java代码 Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); Uri content_url = Uri.parse("http://www.cnblogs.com"); i