В настоящее время я планирую приложение Xamarin.Forms, и при этом я наткнулся на точку, которая, кажется, не имеет ответа.
Приложение должно будет работать с сервисом WCF, чтобы получить его данные, а также сообщить службе о выполнении определенных задач. Пока приложение активно, делать это легко. Но есть что-то, что приложение должно делать. Вызовите службу каждые x минут, чтобы обновить данные и создать уведомления для пользователя в некоторых случаях. Я читал кое-что о фоновой работе в iOS или службах на Android, но, похоже, для приложения Xamarin.Forms не существует общего способа выполнения фоновой работы. Итак, как я могу получить доступ к службе WCF и обрабатывать данные, в то время как приложение неактивно в Xamarin.Forms?Backgrounding with Xamarin.Forms
ответ
Вы делаете это так же, как и Xamarin, как и в Objective-C или Java-приложении. Вы используете тот же API для регистрации фоновой службы.
Есть также документы об этом for iOS и for Android.
Xamarin использует один и тот же API на каждой системе, как и любое другое собственное приложение. Таким образом, все, что вы хотите сделать с Xamarin, может быть сделано так же, как вы использовали бы оригинальные инструменты для вендоров. Единственное отличие - это язык программирования.
Xamarin.Forms совершенно не имеет значения здесь. Это уровень абстракции для собственных интерфейсов пользовательского интерфейса, которые позволяют разработчикам однажды определить пользовательский интерфейс и запустить действительно собственный интерфейс для приложений на Android, iOS, Windows Phone и Windows Store. Это не имеет никакого отношения к тому, что касается здесь.
Просто подумал, что для этого может быть слой абстракции. Я не знаком с фоном, мне это пока не нужно. – EaranMaleasi
Вы найдете несколько исключений, но в настоящее время Xamarin.Forms находится в абстракции пользовательского интерфейса, и это достаточно сложно, чтобы держать их занятыми. Но благодаря службам зависимостей легко создать слой абстракции для любых API-интерфейсов на платформе, если они достаточно совместимы друг с другом. Я еще не задумался о том, как создать общую службу зависимостей, но я знаю по опыту, что концепции концепций iOS и Android очень разные. Поэтому создать хороший слой абстракции может быть сложно. –
Это единственное решение я нашел http://arteksoftware.com/backgrounding-with-xamarin-forms/
в нескольких словах: Вы не можете абстрактные фоновые задачи в Xamarin.Forms, потому что IOS, Android и WP работает по-другому. Вы должны использовать MessagingCenter для отправки и получения данных из конкретных реализаций в каждой платформе
Похожей нити (я скопировал мой ответ здесь): Xamarin.forms long running background work
- 1. ffmpeg backgrounding?
- 2. iOS Backgrounding & XMPPFramework
- 3. iOS Backgrounding Not Working
- 4. iphoneOS backgrounding socket
- 5. Backgrounding, Java & init script
- 6. Xamarin.Forms Master/Detail back stack with Prism
- 7. Xamarin.Forms ListView
- 8. Iphone Voip app - Backgrounding and keep nat pinhole alive
- 9. Как настроить приложение Xamarin.Forms?
- 10. Пользовательское событие в Xamarin.Forms
- 11. Xamarin.Forms MainPage
- 12. Xamarin.Forms: Directory.GetFiles
- 13. Xamarin.Forms Navigation
- 14. Xamarin.Forms styling
- 15. Xamarin.Forms (Shared)
- 16. Xamarin.Forms Previewer
- 17. OnActivityResult Xamarin.Forms
- 18. Xamarin.Forms Android
- 19. Xamarin.Forms version
- 20. Xamarin.Forms Отладка
- 21. Xamarin.Forms Behaviors
- 22. Xamarin.Forms - Контекст?
- 23. Xamarin.Forms GridLayout
- 24. Xamarin.forms OnAppLinkRequestReceived
- 25. Xamarin.Forms/KeyPressEventArgs
- 26. LongPressGestureRecognizer в Xamarin.Forms
- 27. Xamarin.Forms Package Erorr
- 28. LocationInView эквивалент в xamarin.forms
- 29. Xamarin.Forms Change APP Icon
- 30. Xamarin.Forms AdMob «Отсутствует AdActivity»
http://arteksoftware.com/backgrounding-with-xamarin- forms/ – SushiHangover
Итак ... пока приложение работает в фоновом режиме, но не завершено, запускается Task. Но что, если приложение будет прекращено? Будет ли такая задача также прекращена? Как приложения, такие как WhatsApp, меня синхронизируют, даже если приложение закрыто? – EaranMaleasi
Правильно, если приложение не завершено, после его завершения ваши задачи, конечно же, прекращаются. Приложения, такие как WhatsApp register для использования уведомлений iOS Push, у Android/Google есть аналогичная очередь уведомлений. Вам необходимо прочитать специфическую для платформы службу дроидов и задачи фоновой задачи iOS, поскольку они действительно разные: https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html http: // developer.android.com/reference/android/app/Service.html – SushiHangover