我正在使用以下代码删除我的iOS应用的缓存文件夹。它在模拟器上工作正常。
- (void)applicationWillResignActive:(UIApplication *)application
{
__block UIBackgroundTaskIdentifier bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
if (bgTask != UIBackgroundTaskInvalid) {
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
int64_t delayInSeconds = 3;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
UIBackgroundTaskIdentifier myId = bgTask;
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
NSFileManager *fileManager = [NSFileManager defaultManager];
static NSString *theCachesPath = nil; // Application caches path string
NSArray *cachesPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
theCachesPath = [[cachesPaths objectAtIndex:0] copy]; //
[fileManager removeItemAtPath:theCachesPath error:NULL]; /// remove cache
[application endBackgroundTask:myId];
bgTask = UIBackgroundTaskInvalid;
});
});
}
问题是,当在设备上时,我按下主页按钮,应删除应用程序快照(存储在缓存文件夹中),但不会发生。
请帮忙。
答案 0 :(得分:0)
如果您尝试禁用应用程序快照,则可以将屏幕截图更改为空白屏幕或隐藏手动存储的敏感数据,或者如果它是企业应用程序,则可以将它们全部停止。