0

我在理解如何解決這個問題方面存在問題,因爲我對xamarin和android都是新手。根據連通性在後臺上傳數據

我的問題是以下幾點:我需要開發一個android應用程序,它將事物的照片上傳到其他服務器。令人困惑的部分是用戶的連接非常差,所以我需要不斷檢查互聯網連接,並在互聯網存在時嘗試上傳照片。該檢查需要在後臺完成,因此用戶不會注意到任何滯後。

當用戶點擊「保存」時,應用程序應該將照片和元數據保存到本地數據庫或文件(json或sqlite),並在互聯網存在時上傳它們。

我已經嘗試了許多不同的方法,但由於缺乏對android線程和服務如何工作的理解而失敗。 (綁定服務,Foregroundservice,SQLite)

因爲我沒有太多時間研究和測試所有可能性,所以我問你們:我該怎麼做?

謝謝您的理解。

回答

0

有一個nuget插件Xam.Plugin.Connectivity不斷檢查互聯網,你可以管理你的代碼在這個插件的事件。 對於後臺,您需要創建一個後臺線程,並且可以從ConnectivityChanged事件調用它。

CrossConnectivity.Current.ConnectivityChanged += (object sender, Plugin.Connectivity.Abstractions.ConnectivityChangedEventArgs e) => 
    { 
      if(e.IsConnected){ 
      //your code here for fetching data when internet connected. 
      //Create task for background process 
      Task.Run(() => 
      { 
       //your code for background 

      }).ConfigureAwait(false); 
      } 
    } 
+0

是的,但如果連接是在整個時間,這將工作嗎?那麼android終止線程呢? 我認爲這一定要用服務來完成。 – Mightee

+0

這只是在互聯網狀態改變時纔會執行,如在線到離線和離線到在線。當你啓動你的應用程序時,它也會檢查你的網絡狀態。所以,你不需要爲初始時間編寫代碼。 –