Jump to content

Qt for HarmonyOS/qtohosextras doc/Preload Example

From Qt Wiki
Revision as of 02:43, 17 September 2026 by Shawn Luo (talk | contribs) (Publish example source listings and restore Files lists (QTFOROH-2307))

< Qt for HarmonyOS / qtohosextras doc

Preload Example

Demonstrates handling the Preload launch reason so a preloaded ability shows its window only when actually started.


At startup the example inspects QOhosAppContext::getAppLaunchWantInfo() and QOhosWantInfo::launchReason(). When the reason is LaunchReason::StartAbility the window is shown immediately. When the reason is LaunchReason::Preload the window stays hidden; the example connects to QOhosAbilityContext::newWantInfoReceived() and shows the window on the first want whose launch reason is StartAbility, then disconnects the handler.

The launch reason is read from the launch want info:

     const auto wantInfo = QtOhosExtras::QOhosAppContext::getAppLaunchWantInfo();
     const auto appLaunchReason = wantInfo->launchReason();

For a preloaded ability, the window is shown on the first StartAbility want:

         auto abilityContext = QtOhosExtras::QOhosAbilityContext::getDefaultInstance();
         context->connection = QObject::connect(
             abilityContext.get(),
             &QtOhosExtras::QOhosAbilityContext::newWantInfoReceived,
             context->window,
             [context](auto wantInfo) {
                 if (wantInfo->launchReason() == QtOhosExtras::QOhosWantInfo::LaunchReason::StartAbility) {
                     QObject::disconnect(context->connection);
                     context->window->show();
                 }
             });

Files: