Como as interrupções são tratadas em ios

Se o usuário responder à interrupção (a mensagem SMS por exemplo) ou lançou outro aplicativo, o aplicativo é movido para o fundo.

O iOS ciclo de vida da aplicação.
O iOS ciclo de vida da aplicação.

Quando o usuário aceita a notificação ou interrupção, ou pressiona o botão Home (ou quando o sistema lança outra aplicação), o aplicativo vai para o estado fundo, onde ele está suspenso. (Se um aplicativo precisa para continuar em execução, pode solicitar o tempo de execução do sistema.)

Aqui estão as mensagens que seu aplicativo pode responder a depois de ter sido movido para o fundo:

  • o applicationDidEnterBackground: mensagem: Quando seu primeiro aplicativo entra no estado de fundo, ele é enviado a applicationDidEnterBackground: mensagem. Neste método, você deve salvar os dados não salvos ou Estado (Onde o usuário está no aplicativo - o ponto de vista atual, as opções selecionadas, e coisas assim) em um arquivo cache temporário ou para o banco de dados preferências “no disco.”

    Sabemos que a Apple chama o sistema de armazenamento iOS um disco embora seja uma unidade de estado sólido, por isso, se a Apple chama-se que, você provavelmente deve também, apenas para que você não confundir muitas pessoas.

    Mesmo que a sua aplicação entra no estado de fundo, você não tem nenhuma garantia de que ele irá permanecer lá indefinidamente. Se a memória torna-se restrita, iOS irá limpar aplicativos em segundo plano para dar mais espaço para o aplicativo primeiro plano.

    Video: COMO SAO TRATADAS AS MULHERES NO JAPAO

    Você precisa fazer tudo o necessário para ser capaz de restaurar a sua aplicação no caso é posteriormente excluídos da memória para que a próxima vez que o usuário lança seu aplicativo, seu aplicativo pode usar essa informação para restaurar o aplicativo para seu estado anterior. Você também tem que fazer operações de limpeza adicionais, como excluir arquivos temporários.

    Se sua aplicação for purgado quando está neste estado suspenso, ele não recebe nenhum aviso de que ele é removido da memória. Você precisa salvar todos os dados de antemão!

    Video: Power Rangers (2017 Movie) Official Trailer – It’s Morphin Time!

    Quando o delegado é enviado ao applicationDidEnterBackground: método, a sua aplicação tem uma quantidade não documentada de tempo para terminar as coisas. Se o método não retornar antes do tempo acabar (ou se seu aplicativo não solicitar mais tempo de execução do iOS), sua aplicação é encerrada e excluídos da memória.

    Se o seu aplicativo solicita mais tempo de execução ou tiver declarado que ele faz a execução do fundo, ele está autorizado a continuar funcionando após a applicationDidEnterBackground: método retorna. Se não, seu (agora) aplicação de fundo é movido para a suspenso Estado logo após o retorno do applicationDidEnterBackground: método.

    Se o aplicativo está em segundo plano, então ele pode ser relançado. Isso pode acontecer se o usuário seleciona o aplicativo a partir da tela inicial ou na barra de multitarefa, ou é lançada pelo sistema se o aplicativo processa eventos em segundo plano ou monitora uma mudança significativa localização, por exemplo.



  • o applicationWillEnterForeground: mensagem: Quando seu aplicativo é relançada a partir do fundo, ele é enviado a applicationWillEnterForeground: mensagem. Neste método, você precisa para desfazer o que você fez no applicationDidEnterBackground: método (não applicationWillResignActive- de desfazer que no próximo).

    Video: Question Tags | Easily Speak Like a Native!*

Se o usuário ignora a mensagem SMS, ou o aplicativo é relançada a partir do fundo, sua aplicação é reativado e começa a ficar sensível ao toque e outros eventos.

Quando seu aplicativo for reativado, ele é enviado a applicationDidBecomeActive: mensagem.

Você pode usar o applicationDidBecomeActive: método para restaurar o aplicativo para o estado em que estava antes da interrupção. Aqui você desfazer o que você fez no applicationWillResignActive método, tais como reiniciar as tarefas que foram pausados ​​(ou ainda não iniciados) enquanto o aplicativo estava inativo. Se o aplicativo estava anteriormente no fundo, talvez seja necessário atualizar a interface do usuário.

Enquanto uma aplicação está no estado de suspensão, o sistema rastreia e aglutina (realmente redes Fora) eventos que possam ter um impacto sobre esse pedido quando relança. Assim que o aplicativo é instalado e funcionando novamente, o sistema oferece esses eventos para ele.

Para a maioria desses eventos, infra-estrutura existente da sua aplicação deve apenas responder apropriadamente. Por exemplo, se a orientação do dispositivo alterado, controladores de vista da sua aplicação vai atualizar automaticamente a orientação da interface de forma adequada.

Apps são geralmente mudou-se para segundo plano quando interrompida ou quando o usuário sai. Mas se o aplicativo foi compilado com uma versão anterior do SDK, ou está sendo executado em uma versão anterior do sistema operacional que não suporta multitarefa - ou se você decidir que você não quer que seu aplicativo para executar em segundo plano e você definir o UIApplicationExitsOnSuspend -chave na sua Info.plist Arquivo - iOS termina a sua aplicação.

Mesmo que a sua aplicação suporta multitarefa (quase todos fazer neste momento), você ainda deve estar preparado para a sua aplicação a ser morto sem qualquer notificação. O usuário pode matar aplicações explicitamente usando a barra de multitarefa.

Além disso, se a memória torna-se restrita, o sistema pode remover aplicativos da memória para dar mais espaço. Se isso não remover seu suspenso aplicação, ele não lhe dar qualquer aviso, muito menos aviso prévio! No entanto, se seu aplicativo está sendo executado no estado fundo, o sistema não chamar a applicationWillTerminate: método do delegado aplicação.

Quando o delegado aplicativo é enviado ao applicationWillTerminate: mensagem nonmultitasking aplicações, ou aqueles em execução em segundo plano, você precisa fazer os mesmos tipos de coisas que você faz em applicationDidEnterBackground:, só que desta vez você fazê-las saber que a sua aplicação não vai voltar a partir do fundo.

Seu applicationWillTerminate: implementação do método tem uma quantidade limitada (embora não documentado) de tempo para fazer o que precisa fazer e voltar. Qualquer mais do que isso e sua aplicação é encerrada e excluídos da memória. (The Terminator não cabrito ao redor.)


Publicações relacionadas