三星智能电视App退出后重新启动很慢
Samsung Smart TV App is very slow after exiting and starting again
我们为2011年的三星智能电视开发了一个应用程序&2012平台。该应用程序是基于HTML/JavaScript。通常情况下,应用程序运行良好,但退出后,应用程序变得非常慢,速度是原来的六倍。测量的JS执行时间只是稍微慢了一点,但是HTML元素呈现到屏幕上的速度要慢得多。此行为发生在所有设备上(带有智能电视平台的电视和蓝光播放器设备)。
退出是通过执行JS命令
实现的var widgetAPI = new Common.API.Widget();
widgetAPI.sendExitEvent();
当使用命令
时,应用程序的行为相同(即在重新启动后变得更慢)widgetAPI.sendReturnEvent();
(它将用户返回到Smart Hub,而不是完全退出)。通过反复试验,我发现故意让应用程序崩溃可以解决问题——这与用户调用sendExitEvent
方法的行为相同。然而,这不是一个非常干净的方法,而且我更喜欢使用sendReturnEvent
命令。
我如何以编程方式将用户返回到智能集线器,以便应用程序在再次启动时不会变慢?
我希望有人有一些第一人称的经验和建议。我试图消除可能的JS内存泄漏源(使用JS编程最佳实践和三星的建议),但这并没有解决问题。
我用两个动作解决了这个问题:
- 而不是简单地调用
widgetAPI.sendReturnEvent()
我重定向用户到一个新的页面exit.html(使用window.location.href
),这几乎是空的,除了一个onload处理程序,调用以下命令(相当于widgetApi.sendReadyEvent()
和widgetApi.sendReturnEvent()
,但不需要包括Widget.js文件)
curWidget.setPreference("ready","true");
curWidget.setPreference("return","true");
- 注释所有
alert
命令。显然,调用alert
泄漏内存时,使用了几次,以便积累的垃圾不会从内存中收集退出应用程序时,导致它在重新启动后变慢
只有应用这两种方法似乎解决了这个问题。可能是应用积累了内存泄漏,导致应用重启后运行缓慢
1)文档级别的(尽管我们努力遵循所有指导方针来防止它们),然后在加载另一个HTML文件后清除。
2)全局级别的,由调用alert
相关文章:
- 当我在重新启动cordova应用程序后尝试添加更多数据时,lokijs会丢失数据库和收集中的数据
- 重新启动jquery脚本后,角度停止工作
- Chrome内容脚本制作cookie;chrome重新启动时,cookie会被删除.如何使其稳定
- preventDefault之后的重新启动事件
- WebStorm,使用Node Supervisor(因此不必在每次代码更改后重新启动)
- 重新启动游戏jQuery功能不工作
- Web服务器意外退出,正在重新启动新实例
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 重新启动画布 JavaScript
- 事件侦听器,用于完全关闭后重新启动的应用程序
- Node SocketIO以编程方式强制在损坏的套接字上重新启动
- 服务器重新启动后javascript不工作
- 当滚动到指定的位置时,启动功能,如何重置它并重新启动,如果我们再次回到这个位置
- Gulp Concat+Browsesync重新启动
- 在 javaScript 中重新启动 setInterval
- 如何为Sails.js创建启动/停止/重新启动Linux服务
- 如何暂停和重新启动jquery数据表插件
- 如何创建一个onclick函数,该函数在按下重新启动按钮时被调用
- 三星智能电视App退出后重新启动很慢
- 如何在退出应用程序或使用cordova中的javascript重新启动设备时继续计时器(setTimeout())