美文网首页
ios 后台保活

ios 后台保活

作者: 海浪萌物 | 来源:发表于2020-05-22 09:34 被阅读0次

后台保活就是在给APP添加了后台播放音乐的功能,需要在info.plist里面配置UIBackgroundModes里面加上audio,但是假如APP没有音乐播放功能,提交审核会被拒,慎用

- (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.
    NSLog(@"app进入到后台applicationDidEnterBackground");
    //保存日志
    [BMCLogModuleLoggerManager saveAllLog];
//    [self comeToBackground];
}

-(void)comeToBackground{

    NSLog(@"%s:应用进入后台DidEnterBackground", __FUNCTION__);
    self.bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithName:@"123" expirationHandler:^{

       if (self.bgTask != UIBackgroundTaskInvalid) {
           //将要挂起的时候开启播放,让APP在后台保活
           [[UIApplication sharedApplication] endBackgroundTask:self.bgTask];
           self.bgTask = UIBackgroundTaskInvalid;
           [self.mPlayer prepareToPlay];
           BOOL isucc = [self.mPlayer play];
           NSLog(@"isuccisuccisuccisucc:%d",isucc);
       }
    }];
}

//注销后台
-(void)endBack{

    NSLog(@"end=============");

}

-(AVAudioPlayer *)mPlayer{
    if (!_mPlayer) {
         /*这里是随便添加得一首音乐。真正的工程应该是添加一个尽可能小的音乐。。。0~1秒的没有声音的。循环播放就行。这个只是保证后台一直运行该软件。使得该软件一直处于活跃状态.你想操作的东西该在哪里操作就在哪里操作。
                 */
            _session = [AVAudioSession sharedInstance];
            /*打开应用会关闭别的播放器音乐*/
        //    [session setCategory:AVAudioSessionCategoryPlayback error:nil];
        /*打开应用不影响别的播放器音乐*/
            [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];
            [_session setActive:YES error:nil];
            //1.音频文件的url路径,实际开发中,用无声音乐
            NSURL *url=[[NSBundle mainBundle]URLForResource:@"test.mp3" withExtension:Nil];
            //2.创建播放器(注意:一个AVAudioPlayer只能播放一个url)
            _mPlayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:Nil];
            //3.缓冲
            [_mPlayer prepareToPlay];
            _mPlayer.numberOfLoops = NSUIntegerMax;
    }
    return _mPlayer;
}

- (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.
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
    UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
    [center removeAllDeliveredNotifications];

    NSLog(@"app进入到前台applicationWillEnterForeground");

//    if ([BYHttpClient sharedInstance].hasLogin) {
//
//        [[BYHttpClient sharedInstance] presentLoginInOtherDevice:BYLoginPageTypeFromeBack];
//    }
//    [self endBack];
//    [self.mPlayer pause];

    //重新进入到了前天再调一次激活接口
    [self enterForeground];
}

相关文章

  • iOS app进入后台后 应用保活 后台保活

    iOS app进入后台后 应用保活 后台保活

  • iOS后台保活

    iOS后台保活按时间可分为短时保活和长时间保活 短时保活的方式通过beginBackgroundTaskWithN...

  • iOS 后台收到推送语音播报

    iOS App后台保活[http://www.cocoachina.com/articles/896173]iOS...

  • iOS App后台保活

    级别:★☆☆☆☆标签:「iOS App 后台保活」「BackgroundTasks」「后台下载资源」作者: WYW...

  • ios 后台保活

    后台保活就是在给APP添加了后台播放音乐的功能,需要在info.plist里面配置UIBackgroundMode...

  • iOS - 后台保活

    一、正常延长版保活(时间3min-40min不等) 二、永久版保活

  • iOS 后台保活

    一想到后台保活,我们最常见的就是音乐播放软件了,那在我们不是音乐软件的情况下我们要如何后台保活呢? 首先我们就要在...

  • ios后台保活

    原理:1.开启后台任务权限,播放音乐 2.app后台后,开启后台任务,定时轮询后台剩余时间,低于20秒时候再申请新...

  • iOS后台保活

    问题描述: app需要在收到MQTT消息的时候震动30秒和通知栏展示本地通知,一分钟之后移除通知栏消息,这必然涉及...

  • iOS蓝牙后台保活

    Xcode设置如图: 在实践中,主要的开发流程有以下: 新建Central Manager实例并进行监听蓝牙设备状...

网友评论

      本文标题:ios 后台保活

      本文链接:https://www.haomeiwen.com/subject/ummfahtx.html