Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 返回前台时取消后台任务_Iphone - Fatal编程技术网

Iphone 返回前台时取消后台任务

Iphone 返回前台时取消后台任务,iphone,Iphone,使用sdk4.2。我有一个问题,如果我的应用程序退出发送到后台,然后立即如果用户重新启动它。我注意到后台任务线程仍在运行。 这会打乱我在返回前台线程时所做的任何初始化 我应该如何处理这个问题,有没有办法在返回前台时完全取消后台任务线程 谢谢我假设您正在使用类似于以下内容的内容来通知设备您正在执行后台进程: _myTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:myHandle

使用sdk4.2。我有一个问题,如果我的应用程序退出发送到后台,然后立即如果用户重新启动它。我注意到后台任务线程仍在运行。 这会打乱我在返回前台线程时所做的任何初始化

我应该如何处理这个问题,有没有办法在返回前台时完全取消后台任务线程


谢谢

我假设您正在使用类似于以下内容的内容来通知设备您正在执行后台进程:

_myTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:myHandler];
当后台任务正常完成或在myHandler中取消任务时,也应执行此操作:

 [[UIApplication sharedApplication] endBackgroundTask:_myTaskID];
_myTaskID = UIBackgroundTaskInvalid;
现在,假设您正在UIApplicationLegate的applicationWillEnterForeground:中初始化应用程序,或者响应UIApplicationWillEnterForeground通知,只需检查_myTaskID是否设置为UIBackgroundTaskInvalid,以确定后台任务是否仍在执行


您尚未指定在后台任务中执行的任务类型,但您的应用程序应该准备好,如果应用程序在任务仍在执行时返回前台,则允许该任务完成。否则,您可能需要重新考虑使用后台任务。

我假设您正在使用类似于以下内容的内容来通知设备您正在执行后台进程:

_myTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:myHandler];
当后台任务正常完成或在myHandler中取消任务时,也应执行此操作:

 [[UIApplication sharedApplication] endBackgroundTask:_myTaskID];
_myTaskID = UIBackgroundTaskInvalid;
现在,假设您正在UIApplicationLegate的applicationWillEnterForeground:中初始化应用程序,或者响应UIApplicationWillEnterForeground通知,只需检查_myTaskID是否设置为UIBackgroundTaskInvalid,以确定后台任务是否仍在执行


您尚未指定在后台任务中执行的任务类型,但您的应用程序应该准备好,如果应用程序在任务仍在执行时返回前台,则允许该任务完成。否则,您可能需要重新考虑使用后台任务。

@Tech24-您是否正在使用GCD创建另一个线程来在后台模式下执行某些任务?更好:您将任务放在后台运行的方式是什么?@Tech24-您是否正在使用GCD创建另一个线程来在后台模式下执行某些任务?更好:你在后台运行任务的方式是什么?谢谢,是的,我确实是这样做的。所以我想我只需要等到任务完成,是的,我确实是这样做的。所以我想我只需要等到任务完成