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.小結
其實我發上篇博文的時候是有很多模糊的地方,特別希望有大牛們能夠抽時間給指出裡面的一些不足之處,但一直都沒有人指出,還挺失望的。這篇就算自己給自己一個答覆,加油!