在android中运行后台服务以进行数据同步

时间:2016-05-09 11:10:27

标签: c# android xamarin background-process

我是Xamarin平台的新手。我正在使用Xamarin.forms开发Android平台应用程序。如何在后台与我的服务器同步数据。我希望在互联网连接可用时立即上传数据,并在那时无论用户在做什么。

以下是我尝试过的示例服务代码

[Service]
public class LongRunningTaskService : Service
{
    public override IBinder OnBind (Intent intent)
    {
        return null;
    }

    public override StartCommandResult OnStartCommand (Intent intent, StartCommandFlags flags, int startId)
    {
        // start a task here
        new Task (() => {
            // long running code
            DoWork();
        }).Start();

        return StartCommandResult.Sticky;
    }

    public override void OnDestroy ()
    {
        base.OnDestroy ();
    }

    public void DoWork ()
    {
        while (true) 
        {
            //Printing text for checking if service is continously running or not
            Log.Write ("Hello");
            Thread.Sleep (5000);
        }
    }
}

现在开始这项服务我已经在我的Activity类

上使用了以下代码
this.StartService (new Intent (this, typeof(LongRunningTaskService)));

那么这个任务就是在每个5secs中将该示例文本写入文件中,但问题是如果用户使用移动设备的最近活动按钮关闭该应用程序,则该任务也会停止并在日志文件中写入文本停了。

我需要及时继续运行该任务,一旦互联网连接可用并且有一些本地数据要上传到服务器上,它应该上传数据并继续检查本地设备上的新文件

谢谢

0 个答案:

没有答案