微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当应用程序被杀死时,Xamarin AndroidX WorkManager 不工作

如何解决当应用程序被杀死时,Xamarin AndroidX WorkManager 不工作

我正在尝试设置一个每 15 分钟执行一次任务的 WorkManager。现在我正在做这个测试,在 firebase 数据库添加一个条目。

我正在使用 nuget 包 Xamarin.AndroidX.Work.Runtime (2.5.0.2)

如果应用程序在前台后台运行,这可以正常工作,但如果我杀死该应用程序,它就会停止工作。

我正在使用诺基亚 8 Sirocco (api 28) 和三星 galaxy A21S (api 30) 进行此测试,它们都安装了 Android Stock。

这就是我开始工作的方式:

private void StartParallelWorkManager(int minutes)
    {
        PeriodicWorkRequest taskLauncher = PeriodicWorkRequest.Builder.From<UniquePeriodicWorker>(TimeSpan.FromMinutes(minutes)).Build();
        WorkManager.GetInstance(Xamarin.Essentials.Platform.AppContext).EnqueueUniquePeriodicWork("TestTask",ExistingPeriodicWorkPolicy.Keep,taskLauncher);
    }

这是我的 Worker 类:

public class UniquePeriodicWorker : Worker
    {
        public UniquePeriodicWorker(Context context,WorkerParameters workerParameters) : base(context,workerParameters)
        {
        }

        public override Result DoWork()
        {
            
            System.Console.WriteLine("{0} DO WORK",DateTime.Now.ToString("dd/MM HH:mm:ss"));
            try
            {
                _ = CrossCloudFirestore.Current
                             .Instance
                             .Collection("WorkManagerRuns")
                             .AddAsync<DateTime>(DateTime.Now);
            }
            catch(Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex);
            }
            return Result.InvokeSuccess();
        }
    }

在 android studio 中用本机代码做同样的测试很有魅力。

我是否遗漏了 Xamarin 方面的某些内容,还是 Xamarin.AndroidX.Work.Runtime 被窃听了? 有什么建议吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。