O iOS iniciará meu aplicativo em segundo plano se for desativado pelo usuário?
Estou acionando uma busca em segundo plano usando ocontent-available
sinalizar em uma notificação por push. Eu tenho ofetch
eremote-notification
UIBackgroundModes
ativado.
Aqui está a implementação que estou usando no meu AppDelegate.m:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
NSLog(@"Remote Notification Recieved");
UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.alertBody = @"Looks like i got a notification - fetch thingy";
[application presentLocalNotificationNow:notification];
completionHandler(UIBackgroundFetchResultNewData);
}
Quando o aplicativo está sendo executado em segundo plano, funciona bem. (A notificação é recebida e o aplicativo acionou a notificação local "parece que recebi uma notificação", como deve fazer o código acima).
Contudo,quando o aplicativo não está em execução e uma notificação por push é recebida com ocontent-available
bandeira,o aplicativo não foi lançado e adidRecieveRemoteNotification
O método delegado nunca é chamado.
O vídeo da WWDCO que há de novo com multitarefa (# 204 da WWDC 2013) mostra isso:
Ele diz que o aplicativo é "lançado em segundo plano" quando uma notificação por push é recebida com ocontent-available
bandeira.
Por que meu aplicativo não está sendo lançado em segundo plano?
Então a verdadeira questão é:
O iOS executará tarefas em segundo plano depois que o usuário forçar a desativação do aplicativo?