QNativeInterface::QAndroidApplication Struct
Android上のコアアプリケーションへのネイティブインターフェース。詳細...
| ヘッダー: | #include <QCoreApplication> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 以下のように: | Qt 6.2 |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QAndroidApplication はNative Interfaces の一部です。
パブリック関数
| QAndroidApplication() | |
| QAndroidApplication(const QNativeInterface::QAndroidApplication &) | |
| QAndroidApplication(QNativeInterface::QAndroidApplication &&) | |
| QNativeInterface::QAndroidApplication & | operator=(QNativeInterface::QAndroidApplication &&) |
| QNativeInterface::QAndroidApplication & | operator=(const QNativeInterface::QAndroidApplication &) |
静的パブリックメンバー
(since 6.2) QJniObject | context() |
(since 6.2) void | hideSplashScreen(int duration = 0) |
(since 6.2) bool | isActivityContext() |
(since 6.2) QFuture<QVariant> | runOnAndroidMainThread(const std::function<QVariant ()> &runnable, const QDeadlineTimer timeout = QDeadlineTimer::Forever) |
(since 6.2) int | sdkVersion() |
メンバ関数のドキュメント
[constexpr noexcept default] QAndroidApplication::QAndroidApplication()
QAndroidApplication のインスタンスをデフォルトコンストラクタで生成します。
[delete] QAndroidApplication::QAndroidApplication(const QNativeInterface::QAndroidApplication &)
QAndroidApplication のインスタンスをコピーして生成します。この関数は削除されています。
[delete] QAndroidApplication::QAndroidApplication(QNativeInterface::QAndroidApplication &&)
QAndroidApplication のインスタンスをMoveコンストラクタで生成します。この関数は削除されています。
[static, since 6.2] QJniObject QAndroidApplication::context()
AndroidコンテキストをQtJniTypes::Context として返します。直近で起動されたアクティビティオブジェクトが有効な場合、コンテキストはActivity となります。それ以外の場合は、コンテキストはService となります。
この関数は Qt 6.2 で導入されました。
[static, since 6.2] void QAndroidApplication::hideSplashScreen(int duration = 0)
指定されたduration に対してフェード効果を適用し、スプラッシュ画面を非表示にします。duration が指定されていない場合(デフォルトは0)、アプリ起動直後にスプラッシュ画面が非表示になります。
この関数は Qt 6.2 で導入されました。
[static, since 6.2] bool QAndroidApplication::isActivityContext()
QAndroidApplication::context() がActivity コンテキストを返す場合、true を返します。
この関数は Qt 6.2 で導入されました。
[static, since 6.2] QFuture<QVariant> QAndroidApplication::runOnAndroidMainThread(const std::function<QVariant ()> &runnable, const QDeadlineTimer timeout = QDeadlineTimer::Forever)
関数 `runnable ` を Android スレッドに投稿します。この関数はキューに入れられ、Android UI スレッドで実行されます。Android UI スレッド上でこの呼び出しが行われた場合、runnable が直ちに実行されます。Android アプリが一時停止している場合、またはメインアクティビティが null の場合、runnable が Android メインスレッドのキューに追加されます。
この呼び出しは、同期および非同期の両方の呼び出しが可能で、あらゆる戻り値の型を処理できる `QFuture<QVariant>` を返します。ただし、`QFuture::result()` から結果を取得するには、`QVariant::value()` を使用する必要があります。
runnable の実行がtimeout の期間よりも長くかかった場合、ブロック型の呼び出しであるQFuture::waitForFinished() およびQFuture::result() は、timeout が経過すると終了します。ただし、runnable の実行がすでに開始されている場合は、キャンセルされません。
以下の例は、戻り値の型を指定する非同期呼び出しを実行する方法を示しています:
autotask= QNativeInterface::QAndroidApplication::runOnAndroidMainThread([=]() {
QJniObject surfaceView;
if(!surfaceView.isValid())
qDebug() << "SurfaceView object is not valid yet";
surfaceView=QJniObject("android/view/SurfaceView",
"(Landroid/content/Context;)V",
QNativeInterface::QAndroidApplication::context());
returnQVariant::fromValue(surfaceView);
}).then([](QFuture<QVariant>future) {
autosurfaceView=future.result().value<QJniObject>();
if(surfaceView.isValid())
qDebug() << "Retrieved SurfaceView object is valid";
});次の例は、戻り値の型が void である同期呼び出しを実行する方法を示しています:
QNativeInterface::QAndroidApplication::runOnAndroidMainThread([]() {
QJniObject activity = QNativeInterface::QAndroidApplication::context();
// Hide system ui elements or go full screen
activity.callObjectMethod("getWindow", "()Landroid/view/Window;")
.callObjectMethod("getDecorView", "()Landroid/view/View;")
.callMethod<void>("setSystemUiVisibility", "(I)V", 0xffffffff);
}).waitForFinished();注: Androidのメインスレッドで実行する操作の種類には注意が必要です 。長時間の操作は、アプリのUIレンダリングや入力処理をブロックする可能性があるためです。関数の実行時間が長くなると予想される場合は、runnable 内でQDeadlineTimer を使用し、実行を管理してUIスレッドがブロックされないようにすることも有効です。 通常、5秒を超える処理はアプリのUIをブロックする可能性があります。詳細については、「アプリの応答性を維持する」を参照してください。
この関数は Qt 6.2 で導入されました。
[static, since 6.2] int QAndroidApplication::sdkVersion()
Android SDK のバージョンを返します。これは API レベルとも呼ばれます。
この関数は Qt 6.2 で導入されました。
[delete] QNativeInterface::QAndroidApplication &QAndroidApplication::operator=(QNativeInterface::QAndroidApplication &&)
other をこのQAndroidApplication インスタンスに移動・割り当てます。この関数は削除されます。
[delete] QNativeInterface::QAndroidApplication &QAndroidApplication::operator=(const QNativeInterface::QAndroidApplication &)
other をこのQAndroidApplication インスタンスにコピー代入します。この関数は削除されます。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.