Большинство этих событий обрабатываются самим Qt, и вы можете получить их классическим способом.Qt пытается как можно лучше скрыть специфичные для Android вещи и доставляет эти события и т. Д. Так, как вы бы это делали в настольном приложении.
Нажатие кнопки «назад» вызывает QCloseEvent
, которое отправляется в главное окно.,Вы можете установить фильтр событий на объекте из C ++, чтобы перехватить его.Для qml это сигнал Window :: closed .
Так как Qt не поддерживает фоновое выполнение действий, фоновая печать, вероятно, также сообщается как событие закрытия - или она выходит из приложения напрямую.
Для переключателя DIsplay я сейчас точно не знаю, но, возможно, сигнал QGuiApplication :: applicationStateChanged сообщает об этом как Qt::ApplicationSuspended
или другой изэти штаты - просто попробуйте!(это может относиться и к другим событиям)
Краткий совет для Android: Если вы хотите, чтобы что-то не обрабатывалось Qt, вы всегда можете просто создать пользовательское действие Java, расширяющее QtActivity
и используйте его в манифесте.Оттуда вы можете использовать JNI для взаимодействия с Java из C ++ и наоборот.Если вам нужно сделать это, взгляните на Qt Android Extras - они упрощают использование JNI намного и предоставляют кучу хороших классов-оболочек и служебных методов в QtAndroid
Пространство имен, которое может пригодиться.