Estou com problemas com o botao desliga do celular Nokia 2630.
Se segurado por um longo tempo ele fecha a aplicaçao sem a confirmaçao do usuario, e se o tempo for maior ainda ele desliga o proprio aparelho.
Alguem sabe um modo de tratar o evento desse botao?
[quote=rogerwweber]Estou com problemas com o botao desliga do celular Nokia 2630.
Se segurado por um longo tempo ele fecha a aplicaçao sem a confirmaçao do usuario, e se o tempo for maior ainda ele desliga o proprio aparelho.
Alguem sabe um modo de tratar o evento desse botao?[/quote]
Não há como. É particular ao modelo ou fabricante.
Existem celulares que se você segurar o botão vermelho, ele vai te perguntar se deseja encerrar a aplicação. Noutros, isto simplesmente não acontece e a aplicação é encerrada “na marra”.
O que sei é que você pode ser notificado pelo AMS de que a aplicação está sendo encerrada, colocando seu tratamento em destroyApp.
Se “der sorte”, o parâmetro passado pelo AMS a você neste método vai te indicar que você pode lançar uma exception avisando o AMS de que ainda não quer que a aplicação termine.
Ola Boone, realmente esse aparelho permite as 2 opções, e ainda a AMS chama destroyApp(true) , ja tinha ate tratado dentro de destroy(); ^^
Obrigado pela atençao.
[quote=rogerwweber]Ola Boone, realmente esse aparelho permite as 2 opções, e ainda a AMS chama destroyApp(true) , ja tinha ate tratado dentro de destroy(); ^^
Obrigado pela atençao.[/quote]
Mesmo você lançando a exceção em destroyApp o AMS não está respeitando isto e portanto, matando a aplicação ? :shock:
Não estou disparando nenhuma excessao, meu problema é com os rms que estao abertos e nao posso perder os dados. Entao valido se foi fechado o sistema corretamente, ou se foi desligado durante alguma operaçao em q eu perdi os dados entao restauro o backup no startApp();
[quote=rogerwweber]Não estou disparando nenhuma excessao, meu problema é com os rms que estao abertos e nao posso perder os dados. Entao valido se foi fechado o sistema corretamente, ou se foi desligado durante alguma operaçao em q eu perdi os dados entao restauro o backup no startApp();
[/quote]
Como eu disse, você deveria lançar uma exception dentro do método destroyApp caso queira impedir da aplicação ser fechada pelo AMS. Este é o método oficial e documentado no javadoc da classe MIDlet.Procure este método destroyApp lá.