开发者

App freeze while Schedule LocalNotifications in background

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    for (int i =0; i<开发者_高级运维30; i++){
       //add a local notification and schedule it
    }
}

when app switch to background, these codes will freeze app in a while.


There's no document about UIApplication is thread safe or not.
After a long time test I found most time execute LocalNotification on background works well. but some times it just crash our app.

So it seems like all the class with 'UI' prefixed are not thread safe and you should never invoke there's methods on another thread.

And my solution is reduced the number of LocalNotification, it still freeze app in a bit, but we thing we can accept this little freeze.


By default, application processing freezes when the app goes to the background. The execution continues from the same statement where it left when the app comes back to the foreground. To execute code in the background, you have to surround it in the beginBackgroundTaskWithExpirationHandler block.

Have a look at the section Completing a Finite-Length Task in the Background at http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜