iOS后台运行程序, 播放音乐,运行socket等

在iOS中,通过实现特定的方法如`applicationDidEnterBackground:`和`beginTask`,可以保持程序在后台运行大约10分钟,以支持后台音乐播放和处理socket消息。使用`beginBackgroundTaskWithExpirationHandler`启动后台任务,并在必要时调用`endBack`来结束任务,确保遵循系统的后台执行规则。

iOS后台保持程序不休眠,一般十分钟左右之内,只需要实现以下方法即可,可实现后台播放音乐,处理socket消息等,以下代码即可

@implementation AppDelegate

{
    UIBackgroundTaskIdentifier _backIden;
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
    
    self.needStop = YES;
    [NoticeTools setneedConnect:NO];
    if (self.hasMoveFloatView) {//缓存播放流助手位置
        NoticeAssestPointModel *cachePointM = [NoticeAssestPointModel new];
        cachePointM.firstGetin = YES;
        cachePointM.inPointX = self.floatPoint.x;
        cachePointM.inPointY = self.floatPoint.y;
        cachePointM.floatViewIsOut = self.floatViewIsOut;
        [NoticeComTools saveAssestPointModel:cachePointM];
    }
    
    [self beginTask];

}

/// app进入后台后保持运行
- (void)beginTask {
    _backIden = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        //如果在系统规定时间3分钟内任务还没有完成,在时间到之前会调用到这个方法
        [self endBack];
    }];
}
 
/// 结束后台运行,让app挂起
- (void)endBack {
    //切记endBackgroundTask要和beginBackgroundTaskWithExpirationHandler成对出现
    [[UIApplication sharedApplication] endBackgroundTask:_backIden];
    _backIden = UIBackgroundTaskInvalid;
}

这样即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值