0
アプリがフォアグラウンド状態で来ているすべてのバックグラウンドタスクを停止することができますは、どのように私は自動的に私は次のコードを使用してい
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000
if ([[UIApplication sharedApplication]
respondsToSelector:@selector(beginBackgroundTaskWithExpirationHandler:)])
{
UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication]
beginBackgroundTaskWithExpirationHandler:^{}];
// Perform work that should be allowed to continue in background
[self changeCounter];
//[NSThread detachNewThreadSelector:@selector(changeCounter) toTarget:self withObject:_viewController];
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
}
#endif
changeCounterは、いくつかの時間後.Butアプリがフォアグラウンドで来る場合、ループを終了する前に終了しても良いのループが含まれていますループが終了するまで黒い画面しか見ることができません。 だから私はすべてのタスクを停止することができますアプリがフォアグラウンド
に来るようどのようにこれはchangeCounter
-(void)changeCounter{
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
while(back==1.0f){
NSLog(@"loop is runnig");
[NSThread sleepForTimeInterval:1.0];
if(_viewController.minutes<0){
if(_viewController.fadeSeconds>0){
float div=_viewController.deviceVolume/[_viewController.volumeData.fadeTime floatValue];
_viewController.musicPlayer.volume=_viewController.musicPlayer.volume-div;
_viewController.fadeSeconds-=1;
}
else {
[self stop];
//self.musicPlayer.volume=0.0f;
// counter=0;
NSLog(@"closing the sound");
[_viewController.musicPlayer pause];
NSLog(@"fade seconds %i minutes ",_viewController.fadeSeconds);
if(_viewController.dvol==0){
_viewController.musicPlayer.volume=deviceVolume;
_viewController.dvol=1;
}
back=0.0f;
}// end of the else
}
はいアプリがアクティブになると、別のタスクがguiで実行されるので、私はそれを殺したいと思う –
[self changeCounter]のコードを投稿 – jaminguy
編集を確認してください –