This topic describes multitasking, which allows you to save the application state when the user launches another application or TV channel, and to restore it when the application is resumed. You can also monitor for changes in the visibility of your application.
When the user switches from your application to another application or TV channel, JavaScript execution is paused, and your application must save its current state to RAM and hide in the background. The application state is recovered when the application is resumed.
The following table lists the Samsung TV models that support multitasking. Multitasking is also supported on the TV emulator since Tizen TV Extension 2.1.2.
NoteTh models which have low memory specifications might not support multitasking.
The user can use the remote control to launch another application or change the input source.
The user can switch off the TV, if "Samsung Instant On" mode is enabled in the TV settings.
Hiding Applications
To hide the current application, call the hide() method:
tizen.application.getCurrentApplication().hide();
Monitoring Visibility Changes
To monitor the visibility state of your application, create a listener for the visibilitychange event. The listener is notified each time your application is hidden or resumed, for example due to user interaction.
document.addEventListener('visibilitychange', function() {
if (document.hidden) {
// Behavior when application is hidden
} else {
// Behavior when application is resumed
}
});
NoteThe visibilitychange event also fires when the application exits.
Special Multitasking Scenarios
Some special scenarios can occur during multitasking. You must pay attention to these and ensure that your application responds appropriately.
During media playback When the application is hidden during media playback, implement the same behavior as clicking the "Return" key during playback.
document.addEventListener('visibilitychange', function() {
if (document.hidden) {
// Same behavior as "Return" key click
// For example, stop playback and return to previous page
} else {
// Behavior when application is resumed
}
});
Checking network status The network connection status can change while your application is hidden, preventing the application from functioning properly when it is resumed. To check for network connectivity when your application resumes:
document.addEventListener('visibilitychange', function() {
if (document.hidden) {
...
}
else {
var gatewayStatus = webapis.network.isConnectedToGateway();
if (!gatewayStatus) {
// Behavior when the network is disconnected
}
}
});
If the network is disconnected, you must stop jobs requiring a network connection, such as network media playback and server request sending. Return the user to the previous page, inform them of the disconnected status using a popup, and monitor for network reconnection. For more information, see Checking Network Status.
Handling expired data If an application is hidden for a long time, stored runtime data can become invalid because of the service's security policy. You must check whether this data is still valid when the application is resumed. The following are examples of situations where you need to handle expired data:
Login sessions Many service providers have policies where a login session expires after several hours and the user must log in again to use the service. When your application resumes, check the login session validity. If it has expired, show a logged out screen and a popup requesting to log in again.
Media content using digital rights management (DRM) For media content using DRM, the content URL can expire after some time and change to a new URL. The content cannot play using the expired URL. When your application resumes, check the content URL validity. If it has expired, return the user to the previous page and show a popup informing them of the expired status.
Calculating time Be careful when using the time() method. When an application is in the hidden state, JavaScript execution is paused, potentially affecting time calculations:
Do not calculate data expiration time internally. Instead, check for data expiry by communicating with the service provider's server.
Notification popups which close automatically after a few seconds can fail to close if the application has entered the hidden state. Implement the popup timeout carefully.
Note
The same DRM key should be used for the audio segment and the video segment.
Do not mux the audio segment and the video segment into one segment, but use them separately.
Manage Your Cookies
We use cookies to improve your experience on our website and to show you relevant
advertising. Manage you settings for our cookies below.
Essential Cookies
These cookies are essential as they enable you to move around the website. This
category cannot be disabled.
Company
Domain
Samsung Electronics
.samsungdeveloperconference.com
Analytical/Performance Cookies
These cookies collect information about how you use our website. for example which
pages you visit most often. All information these cookies collect is used to improve
how the website works.
Company
Domain
LinkedIn
.linkedin.com
Meta (formerly Facebook)
.samsungdeveloperconference.com
Google Inc.
.samsungdeveloperconference.com
Functionality Cookies
These cookies allow our website to remember choices you make (such as your user name, language or the region your are in) and
tailor the website to provide enhanced features and content for you.
Company
Domain
LinkedIn
.ads.linkedin.com, .linkedin.com
Advertising Cookies
These cookies gather information about your browser habits. They remember that
you've visited our website and share this information with other organizations such
as advertisers.
Company
Domain
LinkedIn
.linkedin.com
Meta (formerly Facebook)
.samsungdeveloperconference.com
Google Inc.
.samsungdeveloperconference.com
Preferences Submitted
You have successfully updated your cookie preferences.