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.小结
其实我发上篇博文的时候是有很多模糊的地方,特别希望有大牛们能够抽时间给指出里面的一些不足之处,但一直都没有人指出,还挺失望的。这篇就算自己给自己一个答复,加油!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。