Gluon не может загрузить собственный плагин, когда приложение закрывается и перезапускается вручную - PullRequest
0 голосов
/ 24 июня 2018

Gluon не удается загрузить собственный плагин, когда приложение закрывается и перезапускается вручную.

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

В каталоге примеров Gluon нет ни одного примера, сообщающегокак запустить фоновый сервис.https://gluonhq.com/developers/samples/

Я реализовал фоновую службу после ответов, опубликованных в этой теме (и некоторых других на SO). Создание фоновой службы Android, которая непрерывно опрашивает REST API для данных Кажется, довольно просто настроить и запустить фоновую службу с использованием чистого Android.

Я использовал пример плагина Gluon для реализации моегособственный плагин службы Android.

Я могу запустить службу в фоновом режиме.Однако, если я вручную закрою все приложения и попытаюсь снова запустить приложение, произойдет сбой Gluon.Сервис продолжает работать в фоновом режиме.Но приложение, кажется, запуталось и не может правильно загрузить наивные плагины.

  1. Найти реализацию моего сервиса для Android и выдает эту ошибку, когда этот метод вызывается в методе приложения init: Services.get(MobilePlatformService.class).get()

    06-24 10:28:23.314: W/System.err(12329): java.util.NoSuchElementException: No value present
    06-24 10:28:23.314: W/System.err(12329):    at java.util.Optional.get(Optional.java:131)
    06-24 10:28:23.314: W/System.err(12329):    at com.demo.apps.mobile.demo._init(demo.java:101) - CALLS Services.get(MobilePlatformService.class).get()
    06-24 10:28:23.314: W/System.err(12329):    at com.demo.apps.mobile.demo.init(demo.java:53)
    06-24 10:28:23.314: W/System.err(12329):    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:841)
    06-24 10:28:23.314: W/System.err(12329):    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$138(LauncherImpl.java:182)
    06-24 10:28:23.315: W/System.err(12329):    at com.sun.javafx.application.LauncherImpl.access$lambda$1(Unknown Source:8)
    06-24 10:28:23.315: W/System.err(12329):    at com.sun.javafx.application.LauncherImpl$$Lambda$2.run(Unknown Source:13)
    06-24 10:28:23.315: W/System.err(12329):    at java.lang.Thread.run(Thread.java:764)
    
  2. После инициализации приложению требуется местоположение каталога приложения.Но, поскольку службе не удалось найти реализацию Android, я не могу получить каталог приложения

    06-24 10:28:23.526: W/System.err(12329): Loading FontFactory com.sun.javafx.font.freetype.FTFactory
    06-24 10:28:23.526: W/System.err(12329): Subpixel: enabled
    06-24 10:28:23.535: W/System.err(12329): Freetype2 Loaded (version 2.5.0)
    06-24 10:28:23.535: W/System.err(12329): LCD support Enabled
    06-24 10:28:23.859: E/a(12329): java.io.IOException: Private storage file not available
    06-24 10:28:23.859: E/a(12329):     at com.gluonhq.impl.charm.a.c.a.c(SourceFile:37)
    06-24 10:28:23.859: E/a(12329):     at com.gluonhq.impl.charm.a.c.a.access$lambda$0(Unknown Source:0)
    06-24 10:28:23.859: E/a(12329):     at com.gluonhq.impl.charm.a.c.a$$Lambda$2.get(Unknown Source:1)
    06-24 10:28:23.859: E/a(12329):     at java.util.Optional.orElseThrow(Optional.java:286)
    06-24 10:28:23.859: E/a(12329):     at com.gluonhq.impl.charm.a.c.a.<clinit>(SourceFile:37)
    06-24 10:28:23.859: E/a(12329):     at com.gluonhq.impl.charm.a.c.a.a(SourceFile:53)
    06-24 10:28:23.859: E/a(12329):     at com.gluonhq.charm.glisten.application.MobileApplication.a(SourceFile:257)
    06-24 10:28:23.859: E/a(12329):     at com.gluonhq.charm.glisten.application.MobileApplication.start(SourceFile:224)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$145(LauncherImpl.java:863)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.LauncherImpl.access$lambda$8(Unknown Source:4)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.LauncherImpl$$Lambda$9.run(Unknown Source:7)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$158(PlatformImpl.java:326)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.access$lambda$6(Unknown Source:4)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl$$Lambda$7.run(Unknown Source:7)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.lambda$null$156(PlatformImpl.java:295)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.access$lambda$18(Unknown Source:2)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl$$Lambda$19.run(Unknown Source:4)
    06-24 10:28:23.859: E/a(12329):     at java.security.AccessController.doPrivileged(AccessController.java:57)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.lambda$runLater$157(PlatformImpl.java:294)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl.access$lambda$5(Unknown Source:4)
    06-24 10:28:23.859: E/a(12329):     at com.sun.javafx.application.PlatformImpl$$Lambda$6.run(Unknown Source:7)
    06-24 10:28:23.859: E/a(12329):     at com.sun.glass.ui.monocle.RunnableProcessor.runLoop(RunnableProcessor.java:93)
    06-24 10:28:23.859: E/a(12329):     at com.sun.glass.ui.monocle.RunnableProcessor.run(RunnableProcessor.java:52)
    06-24 10:28:23.859: E/a(12329):     at java.lang.Thread.run(Thread.java:764)
    

Итак, как правильно запустить приложение Gluon, чтобы оно загружало Android(или ios) родной сервис правильно?Для разработчиков будет очень полезно, если на странице примеров Gluon будет размещен пример работающего фонового сервиса.

...