Pergunta

Meu aplicativo usa NSUSerDefaults para armazenar alguns valores para que ele possa restaurá-los na atualização do aplicativo ou se o pretendente for desistido.Backgrounding salva automaticamente meus valores inteiros, mas se o usuário acabar com o aplicativo no lançador, os números também são perdidos, e o método do ViewDidunload, eu acho que não evoca ao entrar no fundo.Existe uma maneira que eu possa salvar os NsuserDefaults a qualquer momento que o aplicativo descarrega.Além disso, o método de viewdidload tinha o mesmo problema, não evoca de fundo.O que é uma maneira de contornar isso?

p.s.Até agora, os únicos dados que meu aplicativo precisa para salvar é um int para uma contagem na tela.

Atualização: UIAPPlicationDidenterBallingNotification funciona muito bem com suas sugestões!

Foi útil?

Solução

Você não pode salvar os dados logo antes de finalmente ser morto, mas você pode salvar o estado 'apenas no caso' no seu ApplicationDidenterBackground: DELEGADO APP.

Há também o ApplicationDidBecomActive:, mas não há razão para carregar seus dados salvos a partir daí, já que quando é invocado de um aplicativo que estava em segundo plano, os dados terão sido preservados de forma alguma.

Outras dicas

Você não pode dizer se o seu aplicativo foi lançado a partir do fundo ou não, pelo menos como ele está atualmente configurado, já que o delegado do aplicativo receberá a mesma seqüência de eventos se for lançado do springboard.

Como Joost diz, você deve economizar qualquer coisa que precise restaurar o estado dentro da chamada de chamada do ApplicationDidenterBackground;Essencialmente, você deve assumir que esta é a última mensagem que seu aplicativo vai receber antes de ser morto impiedosamente por um processo maligno Reaper.

Você deve verificar o vídeos de sessão WWDC 2010 , especificamente, sessão 105- Adotando multitarefa no iPhone OS, parte 1 para uma explicação completa.

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