无合金钛螺纹
Posted
技术标签:
【中文标题】无合金钛螺纹【英文标题】:threading in titanium without alloy 【发布时间】:2013-09-10 12:41:23 【问题描述】:以下代码是我必须运行的循环,它将使用当前在收音机上播放的歌曲的正确元数据标题更新我的 UI。我需要循环每 10 秒运行一次。我尝试设置十秒的超时并每十秒调用一次我的函数,这导致我的应用程序崩溃,所以我认为我必须创建一个单独的线程。我在这里看到了一个问答,详细说明了如何使用合金来做到这一点:
http://developer.appcelerator.com/question/117199/how-to-create-multithreading-in-mobile-sdk
是否有任何不使用合金的示例,或者实现多线程的最佳实践是什么?代码如下:
function FetchMetaData ()
//while (true)
alert("Am I being fired");
if (isPlaying && Titanium.Network.online)
if (TitleLabel.text !== streamer.getMetaTitle())
TitleLabel.setText(streamer.getMetaTitle());
else
//Do nothing
else
//Do nothing
//
【问题讨论】:
【参考方案1】:setInterval 应该这样做:
function updateView()
//your update code
setInterval(function()
updateView();
, 10000);
当您的应用崩溃时,Titan 日志错误是什么?可能是因为 setInterval 以外的原因。
【讨论】:
需要明确的是,javascript is single threaded 和计时器不会在单独的线程上运行。以上是关于无合金钛螺纹的主要内容,如果未能解决你的问题,请参考以下文章