Кажется, вы хотите отслеживать местоположение пользователя в фоновом режиме. Если вы прочитали документы о Xamarin.Essentials : Геолокация. Есть еще кое-что, что вам нужно сделать.
в iOS-проекте
1. Добавьте конфиденциальность в info.plist
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access location when open.</string>
<key>NSLocationAlwaysAndWhenInUsageDescription</key>
<string>This app needs access location when open or in background.</string>
// support iOS 10 and before
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs access location when open.</string>
2. Для задач, выполнение которых требует больше времени, необходимо запрашивать определенные разрешения для их запуска в фоновом режиме без приостановки.
Поддержка некоторых типов фонового выполнения должна быть объявлена заранее приложением, которое их использует. Вы объявляете фоновые режимы, которые поддерживает ваше приложение, на вкладке «Возможности» настроек вашего проекта в VS. Включение параметра «Фоновые режимы» добавляет ключ UIBackgroundModes в файл Info.plist вашего приложения.
Для получения более подробной информации о фоновом выполнении в iOS вы можете обратиться к этому документы
в Android-проекте
Вы можете создать background service
.
Класс IntentService
предоставляет простую структуру для выполнения операции в одном фоновом потоке. Это позволяет ему выполнять длительные операции, не влияя на скорость отклика вашего пользовательского интерфейса. Кроме того, на IntentService
не влияет большинство событий жизненного цикла пользовательского интерфейса, поэтому он продолжает работать в обстоятельствах, которые привели бы к отключению AsyncTask
.
Подробнее см. здесь.
person
Lucas Zhang
schedule
03.02.2019