sürece (bir yöntemi çağırmak için arka plan görevi API'leri kullanabilirsiniz demiyorlar çok uzun - genellikle ~ 10 dakika maksimum izin verilen süredir).
iOS, uygulamaların arka planında kullanıldığında zamanlayıcıların çalışmasına izin vermez. Bu nedenle, uygulama arka plan işlenmeden önce bir arka plan iş parçacığını göndermenin, ardından bu iş parçacığının uyku moduna geçirilmesinin bir zamanlayıcıyla aynı etkiye sahip olduğunu buldum.
uygulama temsilcinizin - (void)applicationWillResignActive:(UIApplication *)application
yönteminde aşağıdaki kodu koyun: ** AppDelegate.m dosyasında
// Dispatch to a background queue
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
// Tell the system that you want to start a background task
UIBackgroundTaskIdentifier taskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
// Cleanup before system kills the app
}];
// Sleep the block for 5 seconds
[NSThread sleepForTimeInterval:5.0];
// Call the method if the app is backgrounded (and not just inactive)
if (application.applicationState == UIApplicationStateBackground)
[self performSelector:@selector(test)]; // Or, you could just call [self test]; here
// Tell the system that the task has ended.
if (taskID != UIBackgroundTaskInvalid) {
[[UIApplication sharedApplication] endBackgroundTask:taskID];
}
});
yöntemlerinizi ** 'ardından applicationWillResignActive' ve' applicationDidEnterBackground' denir. – Rohan
Teşekkürler. Ama demek istediğim, arka planda olduğu zaman – Rubinc
[iPhone ana ekranının ekran görüntüsünü program aracılığıyla nasıl alabilirim?] (Http://stackoverflow.com/q/13459682/593709) –