Qt for HarmonyOS/qtohosextras doc/Preload Example: Difference between revisions
Add code snippets to example pages (QTFOROH-2307) |
No edit summary |
||
| Line 1: | Line 1: | ||
= Preload Example = | = Preload Example = | ||
Revision as of 02:14, 17 September 2026
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();
}
});