manipulação de notificações por push

Estou lendo os documentos da Apple sobre

Manipulando notificações locais e remotas

e parece-me ter declarações conflitantes. Alguém pode esclarecer esses pontos de confusão? Vamos falar estritamente de notificação remota (versus local) por enquanto.

Os documentos dizem que, se o botão de ação na notificação for pressionado, ele chama application: didFinishLaunchingWithOptions e passa a carga de notificação. Mais tarde, diz que se o aplicativo estiver sendo executado em primeiro plano, ele envia a notificação por meio do aplicativo: didReceiveRemoteNotification :. Isto implica para mim que quando o aplicativo é em segundo plano ou não em execução, em seguida, application: didFinishLaunchingWithOptions é chamado. Caso contrário, application: didReceiveRemoteNotification: é chamado.

Mais tarde, há uma Nota do iOS dizendo o seguinte:

"iOS Nota: No iOS, você pode determinar se um aplicativo é iniciado como resultado do usuário tocar no botão de ação ou se a notificação foi entregue ao aplicativo já em execução, examinando o estado do aplicativo. Na implementação do aplicativo pelo delegado : didReceiveRemoteNotification: ou application: didReceiveLocalNotification: método, obter o valor da propriedade applicationState e avaliá-lo.Se o valor for UIApplicationStateInactive, o usuário tocou no botão de ação, se o valor for UIApplicationStateActive, o aplicativo ficou na frente quando recebeu a notificação. "

Isso implica para mim que application: didReceiveRemoteNotification: é chamado quando o aplicativo já está em primeiro plano e se o usuário pressiona o botão de ação (ou desliza o controle deslizante de ação no iOS 5) para foreground / iniciar o aplicativo.

A fonte da minha confusão pode estar na primeira parte em que os documentos implicam que a carga de notificação é enviada com o aplicativo: didFinishLaunchingWithOptions: método ou com um entendimento incorreto do que é um aplicativo "em execução" (um aplicativo em segundo plano é considerado "em execução"?) . A documentação para o aplicativo: didReceiveRemoteNotification: afirma que ele é chamado para aplicativos "em execução".

Então, para resumir, eu poderia obter esclarecimentos sobre:

1) É aplicação: didReceiveRemoteNotification: sempre chamado quando o aplicativo está em primeiro plano ou quando o usuário seleciona "agir" na notificação? Se não, como entendemos a Nota do iOS para determinar se o estado do aplicativo está ativo ou inativo?

2) É um aplicativo em segundo plano "em execução", pelo menos no sentido da documentação que solicita o aplicativo: didReceiveRemoteNotification é chamado para executar aplicativos?

3) Para conclusão, é um aplicativo de fundo UIApplicationStateInactive ou Active?

questionAnswers(2)

yourAnswerToTheQuestion