ios后台运行程序

本文详细介绍了如何在iOS应用中执行后台任务并设置本地通知的方法,包括使用beginBackgroundTaskWithExpirationHandler来释放共享资源和保存用户数据,以及如何通过scheduleAlarmForDate来触发定时通知。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/csharpjasp/article/details/6833343

1.运行逻辑代码:

-(void)execBackrgoundMethod

{
    /*
     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), ^{  
//在这里写你要在后运行行的代码
         
     [app endBackgroundTask:bgTask];  
     bgTask = UIBackgroundTaskInvalid;  
     }); 
}

2.后台弹出UILocalNotification:

 - (void)scheduleAlarmForDate:(NSDate*)theDate  
 {  
//theDate延迟多长时间弹出
     UIApplication* app = [UIApplication sharedApplication];  
     NSArray* oldNotifications = [app scheduledLocalNotifications];  
     // Clear out the old notification before scheduling a new one.  
     if ([oldNotifications count] > 0)  
     [app cancelAllLocalNotifications];  
     // Create a new notification.  
     UILocalNotification* alarm = [[[UILocalNotification alloc] init] autorelease];  
     if (alarm)  
     {  
     alarm.fireDate = theDate;  
     alarm.timeZone = [NSTimeZone defaultTimeZone];  
     alarm.repeatInterval = 0;  
     alarm.soundName = @"alarmsound.caf";  
     alarm.alertBody = @"Time to wake up!";  
     [app scheduleLocalNotification:alarm];  
     }  
 } 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值