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

问题描述 投票:0回答:1

我在理解如何解决这个问题时遇到了问题,因为我对 xamarin 和 android 都很陌生。

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

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

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

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

感谢您的理解。

xamarin.android android-service android-service-binding
1个回答
1
投票

有一个 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);
          }
    }
© www.soinside.com 2019 - 2024. All rights reserved.