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()
我需要每 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()