Pergunta

Estou começando o WebOS dev e tenho uma dúvida sobre onde devo começar e parar meus ouvintes? estou lendo isto livro, mas não consegui encontrar uma explicação clara sobre isso. Na amostra, o autor colocou os ouvintes na função de configuração, mas eu me pergunto por quê? Não é uma idéia melhor defini -los na função Ativar e detê -los na função desativada, conforme sugerido pelos comentários do modelo?

Caso eu esteja errado que tipo de eventos Não deveria e não deve colocar funções de configuração e ativar?

Quando exatamente configurar, ativar, desativar as funções de limpeza são chamadas?

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);
};
Foi útil?

Solução

A cena assistente configurar é chamado quando a cena é criada, limpar é chamado quando é retirado da pilha. Dentro configurar, o conteúdo HTML real dos controles não está disponível, pois o modelo para a cena ainda não foi processado. UMA pronto O método é chamado se disponível após o processamento do modelo, e este é um bom local para fazer qualquer outra alteração no HTML DOM. ativar é chamado pouco antes da cena se tornar ativa, enquanto Deotivate é chamado quando a cena está sendo estourada ou outra cena está sendo empurrada em cima desta. ativar/*desativar* também são chamados quando o aplicativo é minimizado para um cartão ou trazido de volta à tela cheia.

Geralmente, é melhor iniciar e interromper os ouvintes de eventos no Active/Desativar - que mantém seu tempo vivo no mínimo, e menos ouvintes ativos produzem um sistema mais responsivo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top