• Android(3)—Mono For Android App版本自动更新(2)


      0.前言

      这篇博文是上一篇的延续,主要是修改上一个版中的BUG和优化一些待完善的项,也算是结贴,当然还有需要完善的,等日后项目中用到的时候再单独写出来吧,本篇主要写升级改进的部分;

      改进1.修复【BUG-从通知栏进入更新界面后,然后按返回键-接着再从通知栏进入更新界面,更新界面的数据就完全被初始化了】

      之前从主界面进入下载界面的时候未设置Intent的ActivityFlags,这次增加后点击【现在更新】后的代码如下:

      

    private void Download()
    {
        //转到下载页面进行下载
        Intent intent = new Intent();
        intent.SetClass(this, typeof(AppUpgradeActivity));
        intent.SetFlags(ActivityFlags.SingleTop);
        this.StartActivity(intent);
    }

      2.完善【更新过程中切换通知栏和界面间有点卡】

      之前采用异步只是实现了更新进度条,其实有点大材小用了,这次的修改是采用异步执行服务去下载,并且更新进度条的显示,这样来回切换就很流程了,在下载界面加载完后启动异步线程:                          

      3.完善【下载完成后点击通知栏,通知栏的信息未消失】

      这个比较简单,之前没仔细研究通知栏的事件,这次把它补充了,在下载完后的事件中设置NotificationFlags为AutoCancel,并在点击的时候让通知栏信息消失:

                

      

      4.完善【安装完成后未删除下载的程序】

      其实这个完善并不是安装后直接删除,而是在程序启动的时候检查是否有该程序的安装包,有则删除,安装完后的直接删除的技术有待研究。先绕道完善这个项:

                     

    //启动后判断是否有下载的文件
    string filePath = this.GetString(Resource.String.FilePath);
    File fileDelete = new File(filePath);
    if (fileDelete.Exists())
        fileDelete.Delete();

      5.还未完成的工作 

        1)待完善-未添加下载过程中暂停的操作(该过程涉及到断点续传,到时有机会单独把这个写出来)

      2)待完善-网络异常及超时未处理(这个其实就是网络连接判断和超时处理等,在实际项目中再作处理)

      6.共同进步

      源码的下载地址为:http://pan.baidu.com/s/1dDtatvN,希望对大家有所帮助,也希望大家下载阅读代码后能够指出代码中的不足之处,共同学习进步;

      7.小结

      其实我发上篇博文的时候是有很多模糊的地方,特别希望有大牛们能够抽时间给指出里面的一些不足之处,但一直都没有人指出,还挺失望的。这篇就算自己给自己一个答复,加油!

      

  • 相关阅读:
    Java程序员进阶:Java异常知识点梳理
    JVM内存模型(运行时数据区)
    史前最详细的:Java线程池核心流程解析
    10年大牛给Java 初学者的学习路线建议,如何学习 Java?
    异常处理(面试题)
    115道Java经典面试题(面中率高、全)
    Java异常处理(捕获异常)
    Java异常处理(观察常见异常)
    Java异常处理(异常基本概念)
    学习笔记:Java数组
  • 原文地址:https://www.cnblogs.com/Hua-Min/p/Android_AppUpgrade2.html
Copyright © 2020-2023  润新知