[self endBackgroundTask];
}];
}
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ (Completion Handler) ΡΠΎΠ½ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ endBackgroundTask Π΄Π΅Π»Π΅Π³Π°ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΌΡ ΡΠ°ΠΌΠΈ, ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΠ½ ΡΠ°ΠΊ:
β (void) endBackgroundTask{
dispatch_queue_t mainQueue = dispatch_get_main_queue();
__weak AppDelegate *weakSelf = self;
dispatch_async(mainQueue, ^(void) {
AppDelegate
*strongSelf = weakSelf;
if (strongSelf!= nil){
[strongSelf.myTimer invalidate];
[[UIApplication sharedApplication]
endBackgroundTask: self.backgroundTaskIdentifier];
strongSelf.backgroundTaskIdentifier = UIBackgroundTaskInvalid;
}
});
}
ΠΡΡΡ Π΅ΡΠ΅ ΠΏΠ°ΡΠ° ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π°Π΄ΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ:
β’ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ½ΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΠ· ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Core Foundation ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ GCD;
β’ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΠΎΠ½ΠΎΠ²ΡΡ Π·Π°Π΄Π°ΡΡ, Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ endBackgroundTask: ΠΊΠ»Π°ΡΡΠ° UIApplication;
β’ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ ΠΊΠ°ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΡ, ΠΏΡΠΈΡΠ²ΠΎΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ UIBackgroundTaskInvalid ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌ Π·Π°Π΄Π°ΡΠΈ.
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, Π½ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΠΎΠ΅. ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, Π° Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ° Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡ Π½Π΅Π΅ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ:
β (void)applicationWillEnterForeground:(UIApplication *)application{
if (self.backgroundTaskIdentifier!= UIBackgroundTaskInvalid){
[self endBackgroundTask];
}
}
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΠΌΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ°). Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° backgroundTimeRemaining ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° UIApplication ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ. Π ΠΌΠ΅ΡΠΎΠ΄Π΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° beginBackgroundTaskWithExpirationHandler:, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ UIApplication, ΠΌΡ Π·Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. (ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π·Π° 5β10 ΡΠ΅ΠΊΡΠ½Π΄ Π΄ΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ.) ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ, Π²ΡΠ·Π²Π°Π² ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° endBackgroundTask:, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ UIApplication.
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΎ Π² ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΈ Π·Π°ΠΏΡΠΎΡΠΈΠ»ΠΎ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π΅ΡΠ΅ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΡΡΠ΅ΠΊΠ»ΠΎ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Β«ΠΎΠΆΠΈΠ²ΠΈΡΡΒ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ Π² ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ. ΠΡΠ»ΠΈ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΏΡΠΈΠΊΠ°Π·Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π· Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Π² ΡΠΎΠ½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° endBackgroundTask:, ΠΎΡΠ½ΠΎΡΡΡΠ΅Π³ΠΎΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ UIApplication.
Π‘ΠΌ. ΡΠ°ΠΊΠΆΠ΅
Π Π°Π·Π΄Π΅Π» 14.1.
14.3. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ Π½ΠΎΠ²ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ, ΠΏΠΎΡΠ²ΠΈΠ²ΡΠΈΠΌΠΈΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ iOS SDK.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ (background fetch).
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ Π½Π° ΡΡΠ½ΠΎΠΊ App Store, ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΡΠ΅ΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ±ΠΈΡΠ°ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΡΡΠ»Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Ρ. Π΄. Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² iOS ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π» Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π’ΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Β«Π·Π°Π½ΡΡΡΒ» Ρ iOS Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΠΎΠ± ΡΡΠΎΠΌ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ 14.2), ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ ΠΏΠ°ΡΡΠΈΠ²Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠ΅Π½ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ Π·Π°Π΄Π°Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ Β«ΡΠΈΠ΄ΠΈΡΒ», Π° iOS ΡΠ°ΠΌΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΡΠ°ΠΊ, Π²Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠΈΠΊΠ°Π·Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ iOS ΡΠ°Π·Π±ΡΠ΄ΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Twitter. ΠΡΠΊΡΡΠ²Π°Ρ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Ρ ΠΎΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ²ΠΈΡΡ. ΠΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ: ΠΎΡΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠ°ΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠ²ΠΈΡΠΎΠ². ΠΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° iOS ΠΌΠΎΠΆΠ΅Ρ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΈΡΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΡΠΈΠΊΠ°Π·Π°ΡΡ Π΅ΠΌΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π»Π΅Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ²ΠΈΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΡΠΆΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ.
Π§ΡΠΎΠ±Ρ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Capabilities (ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ) Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° Π² ΠΎΠ±Π»Π°ΡΡΠΈ Background Modes (Π€ΠΎΠ½ΠΎΠ²ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ) ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π°ΠΆΠΎΠΊ Background fetch (Π€ΠΎΠ½ΠΎΠ²ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅) (ΡΠΈΡ. 14.1).
Π ΠΈΡ. 14.1. ΠΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ½ΠΎΠ²ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΏΠΎΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, iOS Π±ΡΠ΄ΠΈΡ Π΅Π³ΠΎ ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎ-Π²ΡΠΎΡΡΡ , Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΅ΡΠ΅ Π½Π΅ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ ΠΈ iOS Π±ΡΠ΄ΠΈΡ Π΅Π³ΠΎ (ΠΎΠΏΡΡΡ ΠΆΠ΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅) ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎ ΠΊΠ°ΠΊ iOS ΡΠ·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°Π·Π±ΡΠ΄ΠΈΡΡ, Π° ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π½Π΅Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ? Π ΡΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° setMinimumBackgroundFetchInterval:, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ UIApplication. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΈ ΡΠ°ΡΡΠΎΡΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ iOS Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ΄ΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈ ΠΏΡΠΈΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ UIApplicationBackgroundFetchIntervalNever. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠΈ iOS Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΡΡΠ½ΡΡ, ΡΠΎΠΎΠ±ΡΠΈΠ² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄, ΠΎΠ±ΡΠ°Π·ΡΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ UIApplicationBackgroundFetchIntervalMinimum, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ iOS Π±ΡΠ΄Π΅Ρ Β«ΠΏΡΠΈΠ»Π°Π³Π°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΒ» β Π±ΡΠ΄ΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΅Π΄ΠΊΠΎ.
β (BOOL) application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[application setMinimumBackgroundFetchInterval:
UIApplicationBackgroundFetchIntervalMinimum];
return YES;
}
Π‘Π΄Π΅Π»Π°Π² ΡΡΠΎ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° application: performFetchWithCompletionHandler, ΠΎΡΠ½ΠΎΡΡΡΠΈΠΉΡΡ ΠΊ Π΄Π΅Π»Π΅Π³Π°ΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ performFetchWithCompletionHandler: ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π΄Π°Π΅Ρ Π½Π°ΠΌ Π±Π»ΠΎΠΊΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅. ΠΠΎΠΎΠ±ΡΠ΅ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² Π΄Π΅Π»Π΅Π³Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° iOS ΠΏΡΠΈΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΎΡΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠΎ ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ²ΠΎ. ΠΠ»ΠΎΠΊΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ·Π²Π°ΡΡ, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° UIBackgroundFetchResult:
typedef NS_ENUM(NSUInteger, UIBackgroundFetchResult) {
UIBackgroundFetchResultNewData,
UIBackgroundFetchResultNoData,
UIBackgroundFetchResultFailed
} NS_ENUM_AVAILABLE_IOS(7_0);
ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ iOS ΠΏΡΠΈΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ ΠΈΡ Π² Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π΅ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΠΎ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ UIBackgroundFetchResultNoData. Π’Π°ΠΊ Π²Ρ ΡΠΎΠΎΠ±ΡΠΈΡΠ΅ iOS, ΡΡΠΎ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ Π½Π°ΡΠ»ΠΎΡΡ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ°Π½Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΡΠΎΠ»Ρ ΡΠ°ΡΡΠΎ. iOS Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠ΅Π½Ρ ΡΠΎΠ»ΠΊΠΎΠ²ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΠΏΡΠΈΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ iOS Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ. ΠΠΎ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ Π΄Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΠΈ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΎΠΉ Π½Π΅Π΄Π΅Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π½ΠΎ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π±Π»ΠΎΠΊΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ UIBackgroundFetchResultNoData. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ iOS ΡΡΠΎΠΈΡ Π±ΡΠ΄ΠΈΡΡ ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°ΠΊ ΡΠ°ΡΡΠΎ. Π’Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΊΠΎΠ½ΠΎΠΌΠ½ΠΎ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ²Π°ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π·Π°ΡΡΠ΄ Π±Π°ΡΠ°ΡΠ΅ΠΈ.
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½ΠΎΠ²ΠΎΡΡΠΈ. Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΡΡΠΌΠΈΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ. Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΊΠ»Π°ΡΡ NewsItem, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠΉΡΡΠ² Π΄Π°ΡΡ ΠΈ ΡΠ΅ΠΊΡΡ: