我已经为IOS做了一个应用程序,其中我使用的是sqlite数据库,数据库在应用程序中是本地的。现在我已经给出了应用程序从互联网下载数据并将其放入本地数据库并显示在用户面前的功能。我已经提供了这个功能,- (void)viewDidLoad
这样当应用程序下载数据时,它会停止工作,直到完成下载部分,因为这个用户需要等待与应用程序交互。
现在我想在应用程序后台运行一个线程,该线程将连接互联网并更新应用程序而不干扰用户。请帮我。
我的下载和保存图像的代码是这样的:
-(void)Download_save_images:(NSString *)imagesURLPath :(NSString *)image_name
{
NSMutableString *theString = [NSMutableString string];
// Get an image from the URL below
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:NSURL URLWithString:imagesURLPath]]];
NSLog(@"%f,%f",image.size.width,image.size.height);
NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
// If you go to the folder below, you will find those pictures
NSLog(@"%@",docDir);
[theString appendString:@"%@/"];
[theString appendString:image_name];
NSLog(@"%@",theString);
NSLog(@"saving png");
NSString *pngFilePath = [NSString stringWithFormat:theString,docDir];
NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(image)];
[data1 writeToFile:pngFilePath atomically:YES];
NSLog(@"saving image done");
[image release];
// [theString release];
}
当我调试应用程序时,我看到我的应用程序在下面一行花费了更多时间:
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:NSURL URLWithString:imagesURLPath]]];