Для неэкспонированного выставочного приложения, как сделать отслеживание местоположения в фоновом режиме (периодически, если местоположение часто меняется), чтобы предотвратить уничтожение приложения? - PullRequest
0 голосов
/ 16 мая 2019

Для выставочного приложения, которое не извлекается и работает в фоновом режиме, моя цель состоит в том, чтобы периодически отслеживать отслеживание местоположения или при изменении местоположения.

Я придерживаюсь базовых 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, нужно ли мне устанавливать неотделимый (пользователь не может отклонить его или удалить с помощьюнажав на него) уведомление, чтобы поддержать фоновую задачу приложения?Могу ли я сделать это с помощью приложения «Экспо».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...