根据连接情况在后台上传数据

Upload data in the background depending on the connectivity

我在理解如何解决这个问题时遇到问题,因为我对 xamarin 和 android 都是新手。

我的问题如下:我需要开发一个 android 应用程序,它可以拍摄事物的照片并将它们上传到休息服务器。令人困惑的部分是用户的网络连接真的很差,所以我需要不断检查互联网连接并尝试在互联网存在时上传照片。此检查需要在后台完成,因此用户不会注意到任何延迟。

当用户点击 "save" 时,应用程序应将照片和元数据保存到本地数据库或文件(json 或 sqlite),并在有互联网时上传。

我尝试过许多不同的方法,但由于不了解 android 线程和服务的工作原理而失败了。 (绑定服务、前台服务、SQLite)

由于我没有太多时间研究和测试所有的可能性,所以我问你们:我该怎么做?

感谢您的理解。

有一个 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);
          }
    }