Critical Issue: App Freeze and Animation Failure After TV Power Cycle

Original Created Jan 26, 2017 | Regeneration Apr 22, 2026

We're experiencing a critical issue with our web application on Samsung Tizen TVs (2015-2016 models). The problem occurs under the following circumstances:

  1. The app is running normally
  2. The TV is turned off and then back on
  3. When reopening the app (which maintains its previous state due to multitasking)

After this sequence:

  • All animations using VelocityJS stop working
  • Menus become overlapped and unusable
  • CSS animations continue to work normally

Important Notes:

  • The issue only occurs after TV power cycling, not when switching between apps
  • We're using the visibilitychange event listener for multitasking management
  • The problem is specific to VelocityJS animations

This is a critical production issue affecting our users. Any guidance on resolving this would be greatly appreciated.

Problem Understanding

The core issue appears to be related to how VelocityJS animations are handled during TV power cycles. The visibilitychange event is triggered correctly, but VelocityJS fails to resume animations properly after power cycling.

Solution Methods

  1. Power Event Handling:

    • Register for power button events in addition to visibility changes
    • Add tv.inputdevice privilege to your config file
    • Implement event listeners for power-related events
  2. VelocityJS Reinitialization:

    • Force reinitialize VelocityJS when the app regains visibility
    • Store animation states and reapply them after power cycles
  3. Fallback to CSS Animations:

    • Consider implementing CSS animation fallbacks for critical UI elements
    • Use feature detection to switch between VelocityJS and CSS animations

Code Examples

// Power key event handling
document.addEventListener('keydown', function(e) {
    if (e.keyCode === 10252) { // Power key code
        // Handle power off event
        saveAnimationStates();
    }
});

// Visibility change handling
document.addEventListener('visibilitychange', function() {
    if (!document.hidden) {
        // App is visible again
        reinitializeVelocityJS();
        restoreAnimationStates();
    }
});

Additional Tips

  • Test thoroughly on both 2015 and 2016 TV models
  • Consider logging animation states for debugging
  • Monitor memory usage as improper cleanup might contribute to the issue
  • For reference, check the updated documentation at Samsung Tizen OS Developer Portal

Customize your cookie preferences

You can enable or disable non-essential cookies. Essential cookies are always on to ensure the site works properly and to keep you signed in.

Necessary

These cookies are necessary for the website to function properly and cannot be switched off. They help with things like logging in and setting your privacy preferences.

Always on

Analytics

These cookies help us improve the site by tracking which pages are most popular and how visitors move around the site.

Enable analytics cookies
Public Forum Public Forum
Employees only. Please sign in with your company account.