Я использую javafxports для запуска моего приложения javafx на основе gradle на Android. С помощью jfxmobile-plugin приложение упаковано в один apk файл и работает нормально. Чтобы переопределить обратное нажатие FxActivity, я попытался расширить этот класс и добавить свой собственный класс Activity.
public class MyActivity extends FxActivity
{
@Override
public void onBackPressed()
{
System.out.println("onBackPressed");
super.onBackPressed();
}
}
Я добавил полное имя класса MyActivity в AndroidManifest.xml, и снова приложение работает нормально, за исключением того, что когда я нажимаю кнопку «Назад» на Android, я не вижу распечатываемого сообщения «onBackPressed». Есть еще одно сообщение, которое показывает, что кнопка «Назад» нажата и обрабатывается каким-то классом jfxrt.jar или чем-то еще. Сообщение выглядит так:
my.sample.package.name I/System.out(16507): KeyEvent: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_BACK, scanCode=0, metaState=0, flags=0x48, repeatCount=0, eventTime=144078131, downTime=144078016, deviceId=-1, source=0x101 } with action = 1
Кто-нибудь знает, как переопределить onBackPressed таким образом, чтобы он работал? Еще один вопрос, который у меня есть, заключается в том, что именно javafxports делает, чтобы закрыть этап javafx при обратном нажатии?
ИЗМЕНИТЬ:
Другой вопрос:
У меня есть два разных приложения для Android javafxports, имя G и B; Эти два приложения имеют одинаковые файлы build.gradle, за исключением разделов зависимостей. Приложение G имеет несколько зависимостей, таких как
dependencies {
compile 'org.reflections:reflections:0.9.10'
compile 'org.dom4j:dom4j:2.0.0'
compile 'com.jfoenix:jfoenix:1.0.0'
compile 'com.gluonhq:charm:2.1.1'
androidRuntime 'com.gluonhq:charm-android:2.1.1'
}
Однако приложение B имеет много зависимостей, которые в основном являются моими собственными подпроектами; Но B не зависят от этих двух конкретных артефактов.
compile 'com.gluonhq:charm:2.1.1'
androidRuntime 'com.gluonhq:charm-android:2.1.1'
При обратном нажатии приложение G выходит на Android Home, как и ожидалось. Однако приложение B не реагирует на событие обратного нажатия на Android, хотя сообщение, подобное упомянутому выше, распечатывается на экране монитора Android.
Я хочу знать, почему B игнорирует событие обратного нажатия?