我在理解如何解决这个问题时遇到了问题,因为我对 xamarin 和 android 都很陌生。
我的问题如下:我需要开发一个Android应用程序,它可以拍摄事物的照片并将它们上传到休息服务器。令人困惑的是,用户的连接非常差,所以我需要不断检查互联网连接,并尝试在有互联网时上传照片。此检查需要在后台完成,这样用户就不会注意到任何延迟。
当用户单击“保存”时,应用程序应将照片和元数据保存到本地数据库或文件(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);
}
}