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

时间:2017-08-30 10:13:00

标签: xamarin.android android-service android-service-binding

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

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

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

我尝试了很多不同的方法但由于缺乏对android线程和服务如何工作的理解而失败。 (绑定服务,Foregroundservice,SQLite)

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

感谢您的理解。

1 个答案:

答案 0 :(得分:1)

有一个nuget插件 Xam.Plugin.Connectivity 用于持续检查互联网,您可以在此插件的情况下管理您的代码。 对于后台,您需要创建一个后台线程,您可以从ConnectivityChanged事件中调用它。

btnMale.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //btnMale.setBackgroundResource(R.drawable.background);// change background your button like this

            btnMale.setBackgroundColor(ContextCompat.getColor(MainActivity.this,R.color.colorPrimary));// use this to set color as background 

            btnFemale.setBackgroundResource(android.R.drawable.btn_default;);// use this to set color as background 
        }
    });



btnFemale.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


        btnFemale.setBackgroundColor(ContextCompat.getColor(MainActivity.this,R.color.colorPrimary));// use this to set color as background 

        btnMale.setBackgroundResource(android.R.drawable.btn_default;);// use this to set color as background 
    }
});