2010-10-23 41 views
6

我開始WebOS的開發,我有我應該從哪裏開始和停止我的聽衆 一個疑問? 我正在閱讀this書,但我無法找到關於此的明確解釋。在示例中,作者在設置函數中設置了監聽器,但是我想知道爲什麼?將它們設置爲激活函數並且按照模板的註釋建議的停用函數停止它們不是一個好主意嗎?開始在Mojo的框架停止監聽器(WebOS的)

如果我錯了,應該和不應該把什麼樣的events在安裝和激活功能?

當正好安裝,激活,停用,清除函數被調用?

StoryViewAssistant.prototype.setup = function() { 
    //HERE, OK? 
    this.nextStoryHandler = this.nextStory.bindAsEventListener(this); 
    this.previousStoryHandler = this.previousStory.bindAsEventListener(this); 
    this.controller.listen("nextStory", Mojo.Event.tap, this.nextStoryHandler); 
    this.controller.listen("previousStory", Mojo.Event.tap,this.previousStoryHandler); 
    /* add event handlers to listen to events from widgets */ 

}; 

StoryViewAssistant.prototype.activate = function(event) { 
    //HERE? 
    /* put in event handlers here that should only be in effect when this scene is active. For example, key handlers that are observing the document */ 
}; 

StoryViewAssistant.prototype.deactivate = function(event) { 
    //HERE? 
    /* remove any event handlers you added in activate and do any other cleanup that should happen before this scene is popped or another scene is pushed on top */ 
}; 

StoryViewAssistant.prototype.cleanup = function(event) { 
    //HERE, OK? 
    this.controller.stopListening("nextStore", Mojo.Event.tap, this.nextStoryHandler); 
}; 

回答

5

場景助理的創建時的情景設置被調用,當它彈出堆棧清理被調用。在設置中,控件的實際HTML內容不可用,因爲場景的模板尚未處理。 A 準備好在模板處理完成後調用該方法(如果可用),這是執行任何其他HTML DOM更改的好地方。 激活稱爲之前的場景變爲活動狀態,而無論是當場景被彈出或另一個場景被在這一個的頂推deativate被調用。 激活/* 禁用 *當應用程序最小化到存儲卡或帶回全屏幕也被稱爲。

這是通常最好的開始和停止激活事件監聽器/停用 - 即保持自己活着的時間降至最低,並減少活動監聽器使得響應更快的系統。