Для выставочного приложения, которое не извлекается и работает в фоновом режиме, моя цель состоит в том, чтобы периодически отслеживать отслеживание местоположения или при изменении местоположения.
Я придерживаюсь базовых API Экспо, включая его Местоположение, TaskManager API,
Отслеживание местоположения работает только первые пару раз, прежде чем оно полностью останавливается.
Следуя тому, что было написано в документации здесь: https://docs.expo.io/versions/v32.0.0/sdk/location/, Мне удалось создать приложение, котороеотслеживает местоположение с помощью API: Location.startLocationUpdatesAsync of Expo.Я также определил «Expo.TaskManager», и он должен регистрировать новое местоположение каждый раз, когда обнаруживается новое местоположение.
Однако, если приложение работает в фоновом режиме более нескольких секунд, отслеживание службы геолокациибольше не работает.Дальнейшее ведение журнала не будет записано в консоли.
Определить задачу:
TaskManager.defineTask(PUSH_LOCATION_IN_BACKGROUND, ({ data, error }) => {
if (error) {
return;
}
if (data) {
const { locations } = data;
console.log('locations are ', locations)
}
});
Запустить (зарегистрировать) задачу:
await Location.startLocationUpdatesAsync('PUSH_LOCATION_IN_BACKGROUND', {
accuracy: Location.Accuracy.Balanced,
distanceInterval:3,
});
Я ожидаю, что каждый разЯ изменяю местоположение моего устройства (либо перемещаясь в новое место, где имитируются мои данные GPS), я получаю запись о новом местоположении, если приложение работает в фоновом режиме.Однако, как только приложение переходит в фоновый режим, оно регистрирует данные только пару раз, прежде чем оно полностью останавливается.
Я ожидаю, что приложение будет работать стабильно в фоновом режиме и, если возможно, избегатьубит ОС, даже если потребление ресурсов в устройстве уже велико.
И как кто-то, кто не имеет опыта разработки Android, нужно ли мне устанавливать неотделимый (пользователь не может отклонить его или удалить с помощьюнажав на него) уведомление, чтобы поддержать фоновую задачу приложения?Могу ли я сделать это с помощью приложения «Экспо».