iOS- 使后台可以运行代码 比如定时器

//后台运行定时器

-(void)applicationDidEnterBackground:(UIApplication *)application{

UIApplication*   app = [UIApplication
sharedApplication];

__block 
UIBackgroundTaskIdentifier bgTask;

bgTask = [app beginBackgroundTaskWithExpirationHandler:^{

dispatch_async(dispatch_get_main_queue(), ^{

if (bgTask !=
UIBackgroundTaskInvalid)

{

bgTask = UIBackgroundTaskInvalid;

}

});

}];

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
0), ^{

dispatch_async(dispatch_get_main_queue(), ^{

if (bgTask !=
UIBackgroundTaskInvalid)

{

bgTask = UIBackgroundTaskInvalid;

}

});

});

}

时间: 2024-07-29 20:42:56

iOS- 使后台可以运行代码 比如定时器的相关文章

ios程序后台继续运行

1.图标右上角显示消息个数 if ([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0) { UIUserNotificationType myType = UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound; UIUserNotificationSettings *mySetting = [U

使用synchronized阻塞后台服务进程,使之一直运行

在使用dubbo启动服务端时,需要使后台一直运行,看网上是使用输入流来阻塞: System.in.read(); // 为保证服务一直开着,利用输入流的阻塞来模拟: 找到一种新的方式,使用锁这个对象类来阻塞 使之不关闭 解释:  synchronized (XXX.class) XXX.class本身是XXX类的一个静态属性,也是一个对象. 锁XXX.class的意思就是对整个类加锁,也就是说无论创建了多少个XXX类的对象,这些对象都共享一个相同的锁标记. 使用如下: <span style=&qu

IOS的后台运行

写在前面给大家推荐一个不错的网站  www.joblai.com http://www.cocoachina.com/bbs/read.php?tid=149564 文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以, 1.音乐 2.location 3.voip 文二 在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在

IOS App 后台运行

使用block的另一个用处是可以让程序在后台较长久的运行.在以前,当app被按home键退出后,app仅有最多5秒钟的时候做一些保存或清理资源的工作.但是应用可以调用UIApplication的beginBackgroundTaskWithExpirationHandler方法,让app最多有10分钟的时间在后台长久运行.这个时间可以用来做清理本地缓存,发送统计数据等工作. 让程序在后台长久运行的示例代码如下: // AppDelegate.h文件 @property (assign, nona

服务程序后台运行代码

使程序脱离终端,完全放在后台运行代码: void daemon(void) {                                     int fr=0;                                                                                                             fr = fork();                                            

苹果IOS,与windows Phone7,系统,内存,CPU处理,及后台程序运行,详解微软墓碑机制的系统

关于ios的多任务以及内存管理 看了很多人为自己的可用内存是350mb还是380mb纠结.为了多优化出一点可用内存费脑筋. ios的任务管理和内存管理,跟windows是有很大差别的.很多人习惯于用 windows的思维去看待ios. windows大家都知道,窗口开的越多,系统越慢,为什么呢?因为所有窗口都在运行,cpu占用率高:并且都占内存.可用内存不足还会迫使系统使用硬盘充当虚拟内存,硬盘频繁读写当然会多耗电,并且硬盘速度也比较慢. ios则不同.首先ios的后台任务,除了极少数可以后台运

转载:Pixhawk源码笔记十:代码调度,使之定时运行

转自:新浪长沙@WalkAnt 第十一部分 调用代码,使之定时运行 英文参考:http://dev.ardupilot.com/wiki/code-overview-scheduling-your-new-code-to-run-intermittently/ 本节源自:http://liung.github.io/blog/apm/2014-09-05-APM-ArduCopter规划新代码使之按一定频率运行.html 1.用代码调度器(scheduler)运行你的代码 在给定时间间隔内来运行

disown 忽略hup信号,使后台运行

nohup,setsid,& 可以避免程序受HUP信号的影响 如果一个命令没有加上上述命令就提交了,这时我们可以通过disown命令来使其不受HUP信号的影响: 一个程序不受挂起影响时: Ctrl+z 使当前进程挂起到后台暂停运行 (fg将挂起的进程重新放回前台) bg将挂起的进程放在后台运行 disown -h %1  第一个作业忽略HUP信号 disown -ah 所有作业忽略HUP信号 disown -rh 正在运行的作用忽略HUP信号

ios LocationSensor 后台运行

设置好,LocationSensor.active := true. 当按home键或黑屏后,程序将立马挂起.LocationSensorLocationChanged事件也不会响应. 有人说要两三秒才挂起,到我这却是立马,不知为啥. 在网上知道的解决方案:http://www.fmxexpress.com/learn-to-use-the-location-sensor-in-the-background-with-firemonkey-in-delphi-10-berlin-on-ios/