1.后台加入NSTimer
- (void)applicationDidEnterBackground:(UIApplication *)application
{
/*
Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
*/
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^
{
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
//Start the long-running task and return immediately.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Do the work associated with the task, preferably in chunks.
_testTimer = [NSTimer scheduledTimerWithTimeInterval:5.0f target:self selector:@selector(getSomeTest) userInfo:nil repeats:YES];
[_testTimer fire];
[[NSRunLoop currentRunLoop] addTimer:_testTimer forMode:NSRunLoopCommonModes];
[[NSRunLoop currentRunLoop] run];
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
});
}
2.切换到前台停用NSTimer
- (void)applicationWillEnterForeground:(UIApplication *)application
{
if(_testTimer) {
if([_testTimer isValid]) {
[_testTimer invalidate];
}
}
/*
Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
*/
}
3.
- (void)localNotificationTest
{
Class cls = NSClassFromString(@"UILocalNotification");
UIApplicationState state = [[UIApplication sharedApplication] applicationState];
if(state == UIApplicationStateActive)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:[NSString stringWithFormat:@"您附近新有%d条活动正在进行", 20] delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];
[alert show];
[alert release];
}
else
{
NSLog(@"localNotificationTest");
UILocalNotification *notif = [[UILocalNotification alloc] init];
notif.fireDate = [NSDate date];
notif.timeZone = [NSTimeZone localTimeZone];
notif.alertBody= [NSString stringWithFormat:@"您附近新有%d条活动正在进行", 20];
notif.alertAction = @"显示";
notif.soundName= UILocalNotificationDefaultSoundName;
notif.applicationIconBadgeNumber = ([UIApplication sharedApplication].applicationIconBadgeNumber + 1);
notif.userInfo = [NSDictionary dictionaryWithObject:notif.alertBody forKey:@"kActivityNearByTotal"];
[[UIApplication sharedApplication] scheduleLocalNotification:notif];
[notif release];
}
}
本文探讨了iOS开发者在日常工作中如何有效地管理时间,包括使用时间管理工具、优化工作流程、合理安排任务等策略,旨在提高开发效率并确保项目的顺利进行。
1万+

被折叠的 条评论
为什么被折叠?



