내 응용 프로그램에서 나는 여러 서비스를 치고 코어 데이터를 사용하여 작업을 수행하기 위해 백 그라운드 스레드를 사용하고 있습니다. 내가 다시 지상 프로세스에 대한 주요 스레드를 사용하여, 그 잘 작동합니다. 난, 데이터베이스를 초기화 내가 하나 개의 진행률 표시 줄을 표시합니다 내가 초기화를 view.During 컨테이너로 이동합니다 일단 여기에 내 코드메인 스레드 처리 문제
dispatch_queue_t main = dispatch_get_main_queue();
dispatch_async(main,
^{
[self backGroundCall];
});
-(void)backGroundCall
{
NSLog(@"Done");
if([CacheManager refreshDBforFirstTimeUseWithDelegate:self])
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"IsDBInitialized"];
ContainerViewController *containerViewControllerInstance = [ContainerViewController getContainerInstance];
[containerViewControllerInstance setUserId:_userID];
[progressView setHidden:YES];
[self.view setUserInteractionEnabled:YES];
[self.navigationController setDelegate:containerViewControllerInstance];
[self.navigationController pushViewController:containerViewControllerInstance animated:YES];
}
}
입니다. 전체 백그라운드 프로세스가 완료되면 (앱이 최소화 된 상태로 유지되는 경우) 정상적으로 작동합니다. 백그라운드 프로세스 중에 포 그라운드 진행 막대가 나타나면 그 시점에 검은 화면이 표시되지 않고 진행보기 대신 표시됩니다. 주요 위협 컨테이너보기가 완료된 후에는 [주 스레드 프로세스의 전경에 오면] 표시되지 않습니다.
은 내가 메인 스레드 프로세스의 중간에 다시 응용 프로그램에 올 경우, 진행 표시 줄을 표시해야합니다. 이 문제를 해결하도록 안내해주세요.
감사합니다.
백그라운드 스레드를 백그라운드 스레드로 처리하십시오. 주 스레드가 작동 중일 때 UI가 응답 할 수 없습니다. – trojanfoe
제발 샘플 코드에 관한. 위의 코드에서 반환 한 progressView를 표시해야합니다. – Ganapathy