android 应用终止状态下的 Workmanager 定期工作请求

Workmanager periodic work request in android app killed state

我需要每 X 分钟从服务器同步一次数据,即使在终止应用程序之后也是如此。 我使用带有 PeriodicWorkRequest 的 WorkManger 每 X 分钟触发一次。即使我们终止应用程序,这也是每 X 分钟触发一次。 我在退出应用程序后遇到问题如何访问静态 class 或变量?

示例代码:

public void InitiateWorkManager()
    { 
        PeriodicWorkRequest myWorkRequest = PeriodicWorkRequest.Builder.From<SyncClass>(System.TimeSpan.FromMinutes(15)).Build();

        WorkManager.Instance.EnqueueUniquePeriodicWork(“MyIUniqueId”, ExistingPeriodicWorkPolicy.Keep, myWorkRequest); 
    }

SyncClass.cs :

  public class SyncClass : Worker
   {
        Context _context;
        public SyncClass(Context context, WorkerParameters workerParameters) : base(context, workerParameters)
        {
            _context = context;
        }

        public override Result DoWork()
        {
             var url = Constants.url;
            var list=  DependencyService.Get<IEmployee>().GetEmployeeList();
        }

  return Result.InvokeSuccess();
}

Constants.cs :

public static class Constants
{
public static string url =“www.xyz.com/getdata”
}

当应用程序处于前台和后台状态但由于 DependencyService class 为 null 而在终止状态时失败时,这可以正常工作。

这里是静态的classDependencyService是从nuget包“Xamarin.Form”访问的,如果应用程序处于终止状态,它是空的。

Link 解释了类似的问题,但这更多的是关于流程处理。

有没有办法在 DoWork(), Any hints/suggestions 中重新定义这个静态 class/variables ? Xamarin.Android 或 java/kotlin。

在调用 DependencyService.Get().GetEmployeeList()

之前,使用下面的代码解决了上述问题
Xamarin.Forms.Init()