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

  0.前言

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

 

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

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

  

Android(3)—Mono For Android App版本自动更新(2)
private void Download()
{
    //转到下载页面进行下载
    Intent intent = new Intent();
    intent.SetClass(this, typeof(AppUpgradeActivity));
    intent.SetFlags(ActivityFlags.SingleTop);
    this.StartActivity(intent);
}
Android(3)—Mono For Android App版本自动更新(2)

 

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

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

 

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

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

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

 

  

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

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

                 

Android(3)—Mono For Android App版本自动更新(2)
//启动后判断是否有下载的文件
string filePath = this.GetString(Resource.String.FilePath);
File fileDelete = new File(filePath);
if (fileDelete.Exists())
    fileDelete.Delete();
Android(3)—Mono For Android App版本自动更新(2)

 

  5.还未完成的工作 

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

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

 

  6.共同进步

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

 

  7.小结

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

  

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

上一篇:ndk开发环境,4面阿里拿到P7Offer,顺利通过阿里Android岗面试


下一篇:Android 4 学习(20):ActionBar