Qt for HarmonyOS/qtohosextras doc/Preload Example: Difference between revisions
Fix example page conversion (QTFOROH-2307) |
Add code snippets to example pages (QTFOROH-2307) |
||
| Line 8: | Line 8: | ||
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. | 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: | |||
<syntaxhighlight lang="cpp"> | |||
const auto wantInfo = QtOhosExtras::QOhosAppContext::getAppLaunchWantInfo(); | |||
const auto appLaunchReason = wantInfo->launchReason(); | |||
</syntaxhighlight> | |||
For a preloaded ability, the window is shown on the first StartAbility want: | |||
<syntaxhighlight lang="cpp"> | |||
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(); | |||
} | |||
}); | |||
</syntaxhighlight> | |||
* [[Qt_for_HarmonyOS/qtohosextras_doc/Preload_Example|abilitycontext/preload/preload.pro]] | * [[Qt_for_HarmonyOS/qtohosextras_doc/Preload_Example|abilitycontext/preload/preload.pro]] | ||
[[Category:Qt for HarmonyOS]] | [[Category:Qt for HarmonyOS]] | ||
Revision as of 10:15, 16 September 2026
< 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();
}
});