gpt4 book ai didi

android - Xamarin Forms Android Pie 在应用程序后台 sleep 模式下无法获取当前位置

转载 作者:行者123 更新时间:2023-11-29 00:56:31 25 4
gpt4 key购买 nike

我想在应用程序进入休眠模式或后台时获取当前位置。目前我正在应用程序 OnSleep() 中使用 > Plugin.Geolocator.CrossGeolocator.Current DLL > , 但它一直工作到 Android 8.1Android Pie 没有更新 current Location 值.. 如何在 Android Pie 中实现?

示例代码:

 protected override async void OnSleep()
{
var minute = TimeSpan.FromSeconds(30);
Device.StartTimer(minute, () =>
{
await Task.Run(async () =>
{
TimeSpan t = TimeSpan.FromSeconds(10);
var locator = Plugin.Geolocator.CrossGeolocator.Current;
locator.DesiredAccuracy = 5;
var position = await locator.GetPositionAsync(timeout: t);
//API Method
});
});
}

最佳答案

您不能只启动一个线程并期望它在操作系统将应用程序置于后台或省电模式后继续运行。

您必须设置一个 Android Service(并将其置于前台)至少来处理您的位置更新。

后台执行限制

https://developer.android.com/about/versions/oreo/background

前台服务

使用 WorkManager 安排任务

关于android - Xamarin Forms Android Pie 在应用程序后台 sleep 模式下无法获取当前位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54360314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com