我必须从我的服务器下载文件。支持多次下载。 当我点击下载时,我必须检查网络连接和服务器连接,哪个已完成。
这是问题!
在下载期间,如果服务器不可用,则会产生一些问题。因此,我必须在5秒后检查服务器连接,并且必须显示服务器已关闭的警报。我用计时器来检查连接。但问题是,在多次下载期间,警报视图显示的次数与下载次数一样多。如果服务器在两者之间可用,则应用程序会冻结。但我可以看到计时器代码仍在工作..
示例代码:
-(void) myFunction {
if ([networkCheck isHostReachable]) {
if (![ServerConnectivity isServerUp:myUrl]) {
serverStatusAlert = YES;
}
if (serverStatusAlert) {
UIAlertView *serverDownAlert = [[UIAlertView alloc]initWithTitle:@"Error" message:@"Server is down. Please try after sometimes." delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok",nil];
[serverDownAlert show];
[serverDownAlert release];
serverDownAlert = nil;
[self cancelAllDownload];
connectivityTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(checkServerStatus) userInfo:nil repeats:YES];
}
}
else {
NSLog(@"No network connection...");
}
}
-(void)checkServerStatus {
if ([ServerConnectivity isServerUp:myUrl]) {
[connectivityTimer invalidate];
connectivityTimer = nil;
serverStatusAlert = NO;
//function to resume downloads
}
else {
//pause downloads
}
}