1. 程式人生 > >Android(3)—Mono For Android App版本自動更新(2)

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.小結

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