quinta-feira, 17 de maio de 2012

iOS: O iPhone começa a tocar - Tratando interrupções no iOS

Você está lá, usando um aplicativo ou jogando quando seu iPhone toca.Você atende o telefone e quando volta a jogar, FUUUUU! Você está na tela de Game Over porque o aplicativo continuou executando em background. Ou pior, você não consegue falar com o seu interlocutor porque a música do jogo continuou sendo executado.

Esses problemas são muito comum e muito negligenciado. Primeiro porque muitos desenvolvedores nem passa pela cabeça em receber ligação ou que o sistema operacional pode mandar alguma mensagem de aviso. E quando passa pela cabeça, temos que se matar na documentação mal-organizada da Apple.

Por isso, estou fazendo esse tutorial. Depois de esbarrar na documentação e ter que interpretar o que eles quiseram falar:



Para receber o evento de interrupção (telefonemas, entre outros), nós devemos implementar o método do nosso AppDelegate (aquela classe que usa o protocolo <UIApplicationDelegate>. Então, no arquivo *.m do AppDelegate, colocamos:

-(void)applicationWillResignActive:(UIApplication *)application{
   //Aqui você faz o tratamento para que o aplicativo entre em modo suspenso
}

Esse método vai ser chamado quando o aplicativo vai ser suspenso, seja por causa de um telefonema ou seja por outros motivo. Então dentro desse método, você implementa tudo que for preciso para suspender o aplicativo sem que haja problemas para o usuário.

Quando o aplicativo voltar a ser executado, o seguinte método vai ser chamado:

-(void)applicationDidBecomeActive:(UIApplication *)application{
   //Aqui você vai desfazer o que você fez no método anterior.
}

Nesse método, você vai reverter todas as modificações do método anterior para que o usuário continue de onde parou.

Para mais informações, deixo o link para a documentação:

Nenhum comentário:

Postar um comentário