Как мне написать фоновый сервис, который будет работать, если приложение будет отменено - PullRequest
1 голос
/ 20 января 2020

Я пишу приложение Xamarin Forms (C#), которое имеет пользовательский интерфейс, который получает данные от пользователя и передает их в фоновый поток / службу для отправки на сервер. Datafirst сохраняется в локальной базе данных для безопасного хранения. (Очистка будет позже)

Мне нужен сервис или что-то, что будет гарантировать доставку данных, даже если приложение свернуто или закрыто (смахивание с экрана). Я ищу что-то, что не существует?

Я попробовал IntentService, который, казалось, делал то, что я хотел, но остановился, если убил пользовательский интерфейс. Я попробовал настоящую службу, которая также остановилась, если я убил пользовательский интерфейс, но, возможно, я не настроил ее должным образом.

Кроме того, служба, кажется, работает в потоке пользовательского интерфейса. Что в этом хорошего? Я не могу заставить его работать как BackgroundWorker с помощью StartService внутри рабочего, поэтому я попытался запустить службу в обычном режиме и в StartCommandResult OnStartCommand, вызвав метод выборки / сохранения данных как Task или Thread. Он работает до тех пор, пока приложение остается активным. Я тоже посмотрел на AsyncTask, а также на AlarmManager.

Что мне не хватает ???

1 Ответ

1 голос
/ 20 января 2020

Ознакомьтесь с функциональностью фоновых заданий в Shiny Framework - он специально создан для таких случаев использования, как ваш

https://github.com/shinyorg/shiny

Полная информация о видео с создателем здесь

https://www.youtube.com/watch?v=aLtk-VlGicY

...