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

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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM