Saya memicu pengambilan latar belakang dengan menggunakan content-availablebendera pada pemberitahuan push. Saya memiliki fetchdan remote-notification UIBackgroundModesmengaktifkan.
Berikut ini adalah implementasi yang saya gunakan di AppDelegate.m saya:
- (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);
}
Ketika aplikasi berjalan di latar belakang, itu berfungsi dengan baik. (Pemberitahuan diterima dan aplikasi memicu pemberitahuan lokal "sepertinya saya mendapat pemberitahuan", seperti yang harus dilakukan kode di atas).
Namun, ketika aplikasi tidak berjalan dan pemberitahuan push diterima dengan content-availablebendera, aplikasi tidak diluncurkan dan didRecieveRemoteNotificationmetode delegasi tidak pernah dipanggil.
Video WWDC Whats New With Multitasking (# 204 dari WWDC 2013) menunjukkan ini:
Dikatakan bahwa aplikasi "diluncurkan ke latar belakang" ketika pemberitahuan push diterima dengan content-availablebendera.
Mengapa aplikasi saya tidak diluncurkan ke latar belakang?
Jadi pertanyaan sebenarnya adalah:
Apakah iOS akan melakukan tugas latar belakang setelah pengguna keluar dari aplikasi secara paksa?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions



