NSTimer后台运行并弹出提示
来源:互联网 发布:淘宝卖的钱在哪里 编辑:程序博客网 时间:2024/06/05 00:31
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];
}
}
- NSTimer后台运行并弹出提示
- NSTimer后台运行并弹出提示
- Scheduled NSTimer后台运行
- iOS 后台运行NSTimer
- iOS后台运行NSTimer
- iOS开发 NSTimer 后台运行
- 程序进入后台运行NSTimer
- 后台弹出提示信息
- c#后台弹出提示
- NSTimer计时器后台运行的解决方法
- iOS程序进入后台后仍运行定时器NSTimer
- iOS程序进入后台后仍运行定时器NSTimer
- iOS程序进入后台后仍运行定时器NSTimer
- iOS程序进入后台后仍运行定时器NSTimer
- iOS程序进入后台后仍运行定时器NSTimer
- iOS程序进入后台后仍运行定时器NSTimer
- iOS程序进入后台后仍运行定时器NSTimer
- iOS程序进入后台后仍运行定时器NSTimer
- CSS 参考手册
- Bridge 模式
- JS JavaScript 模态窗口为什么提交给自己总是弹出一个新窗口??
- 用gdb 调试GCC 程序
- BeanUtils.copyProperties()的用法
- NSTimer后台运行并弹出提示
- 区分glFrustum和gluPerspective
- 滚动字幕特效大全
- 简单的插入排序
- java.lang.Runtime.getRuntime().exec 调用后,等待被调用程序结束后再继续执行
- glibc的几个有用的处理二进制位的内置函数
- Installation error: INSTALL_FAILED_OLDER_SDK
- java序列化
- 更多精彩原创代码请访问我的博客