程序放后台运行

#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

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

 *
 *  @param application
 *  @param launchOptions <#launchOptions description#>
 *
 *  @return <#return value description#>
 */

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.
    return YES;
}

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

    [self beingBackgroundUpdateTask];

    // 在这里加上需要长久运行的代码
    [self endBackgroundUpdateTask];

}

- (void)beingBackgroundUpdateTask {

    self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{

        [self endBackgroundUpdateTask];
    }];
}

- (void)endBackgroundUpdateTask {

    [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
    self.backgroundTask = UIBackgroundTaskInvalid;
}

- (void)applicationWillResignActive:(UIApplication *)application {
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    // 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.
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}

- (void)applicationWillTerminate:(UIApplication *)application {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

@end

时间: 2024-10-11 10:19:38

程序放后台运行的相关文章

linux下ping加时间戳实时输出到文件 放后台运行

放后台运行命令:setsid 实时输出命令:unbuffer 加时间戳:awk '{ print $0"\t" strftime("%D_%H:%M:%S",systime()) } ' 命令如下:setsid unbuffer ping 172.17.1.1 -i 2 | awk '{ print $0"\t" strftime("%D_%H:%M:%S",systime()) } '  >> test.txt

Linux之nohup命令:实现退出终端后程序继续后台运行

转自:http://tech.ccidnet.com/art/302/20070618/1115599_1.html 简单而有用的nohup命令在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程(本站有文章介绍过),比较麻烦:另一种方法是仍然用普通方法编程,然后用nohup命令启动程序: nohup<程序名>& 则控制台logout后,进程仍然继续运行,起到守护进程的作

【转】Linux下nohup命令实现退出终端后程序继续后台运行

Unix/Linux下一般想让某个程序在后台运行,很多都是使用&在程序结尾来让程序自动运行:但如果要想在退出终端后,程序依然还在后台运行,则要用nohup与&组合来实现. nohup 命令 用途:不挂断地运行命令 语法:nohup Command [ Arg ... ] [& ] 描述:nohup 命令运行由 Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGHUP)信号.在注销后使用 nohup 命令运行后台中的程序:要运行后台中的 nohup 命令,需要添

linux 让程序在后台运行的几种可靠方法

我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题. 先介绍一下hangup 名称的来由 在 Unix 的早期版本中,每个终端都会通过 modem 和系统通讯.当用户 logout 时,modem 就会挂断(hang up)电话. 同理,当 modem 断开连接时,就

原创翻译:iOS 应用程序 蓝牙后台运行

默认情况下,普通的CoreBluetooth 任务中的大多数,无论是Central还是peripheral ,在后台或者挂起状况下都是无法进行的.也就是说,你可以通过宣布你的应用程序支持后台处理模式来允许你的一个应用程序把你从一个挂起状态中唤醒来执行某些蓝牙相关的事件. 即使你的应用程序支持一种或者两种CoreBluetooth后台执行模式,那么他也不会永远运行.在某些时候,系统也许由于当前的前台应用程序而终止你的应用程序来释放内存,这将会导致任何活跃的或者挂起的连接会丢失.在iOS7中,Cor

iOS开发之使程序在后台运行

方法一(此方法不太可靠): 开启程序后台运行: [application beginBackgroundTaskWithExpirationHandler:^{ //后台运行过期后会调用此block内代码 }]; 上面在后台开启任务让程序在后台持续保持运行状态,但能保持运行的时间是不确定.比如内存不足的时候系统可能停止其在后台运行. 方法二: 欺骗系统,在Info.plist中声明自己的应用类型为audio.在后台播放mp3.使其能长期在后台运行.

让linux程序在后台运行

最近要用php进程发奖励,因为要精确到秒执行,linux系统的定时用不了,于是写了个死循环,usleep是必须的,否则系统cpu占用很高的系统cpu. 执行的时候碰到一个问题,关闭终端后进程也终止了.在此记录下解决方法. define('IN_WEB', 'true'); set_time_limit(0); include(dirname(__FILE__)."/../com.php"); $pidFile = PATH_DAT . 'ticket.pid'; if(file_exi

在windows中:双击运行Python程序、后台运行Python程序

一.安装Python解释器的windows环境,如果双击运行*.py的文件,会闪退.怎样避免闪退呢? 1.bat启动 start_show.bat  中 python main.py 2.升级版:vbs后台运行(无界面) start_hidden.vbs  中 Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c start_show.bat",0 二.windows中怎么快捷杀掉Python程序? 答:bat杀

android实现程序的后台运行

</pre><pre name="code" class="java"> /** * 改写返回键事件监听,使得back键功能类似home键,让Acitivty退至后台时不被系统销毁 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { PackageManager pm = getPackageManager(); ResolveInfo homeInfo =