苹果信息app一直后台运行的简单介绍

hacker|
94

文章目录:

苹果手机怎么保持app一直运行

我们都知道,苹果对APP占用硬件资源管的很严,更不要说应用后台时候的资源占用了。正常情况下,使用应用时,APP从硬盘加载到内存,开始工作;当用户按下home键,APP便被挂起,依然驻留在内存中,这种状态下,不调用苹果已开放的几种后台方法,程序便不会运行;如果在这个时候,使程序继续运行,则为后台状态;如果当前内存将要不够用时,系统会自动把之前挂起状态下的APP请出内存。所以我们看到,有些时候打开APP时,还是上次退出时的那个页面那些数据,有时则是重新从闪屏进入。

iOS系统后台机制大概可以分为5种状态

Not Running:APP没有启动,也没有后台运行。

Active:用户正在使用APP,比如说我们聊微信看网页的时候,APP就处于Active状态。

Inactive:这是一个过渡的状态,APP虽然打开了,但是用户没有跟APP有任何互动操作。

Background:APP在后台运行,微信会在没有打开的时候接收消息。

Suspended:APP虽然在后台运行,但是处于休眠状态,只占用一点内存。

** 那么我需要的是Background模式。即APP在后台运行同时保持程序active的状态 **

首先去xCode里面设置。到info.plist中添加以下信息:

然后到Capabilities里面打开后台模式,并根据项目的要求勾选对应的功能。我这里只需要保持后台运行并且播放背景音乐及通知功能。所以就勾选了第一个和最后一个

以上这两步是告诉系统我这个APP支持后台模式,对应的环境为音频环境。

可是到这一步,APP还是不能长时间运行到后台。

为什么?我们思考一下。我们让程序支持了后台运行的模式。那么我们是不是还需要系统知道我们的程序要在后台运行多久呢?我们需要告诉系统我们期望APP在后台存活的时间。

首先声明一个属性

@property (nonatomic, assign) UIBackgroundTaskIdentifier bgTask;

在进入后台的时候通过AppDelegate里面的方法:

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

[ self comeToBackgroundMode];

}

-(void)comeToBackgroundMode{

//初始化一个后台任务BackgroundTask,这个后台任务的作用就是告诉系统当前app在后台有任务处理,需要时间

UIApplication* app = [UIApplication sharedApplication];

self.bgTask = [app beginBackgroundTaskWithExpirationHandler:^{

[app endBackgroundTask:self.bgTask];

self.bgTask = UIBackgroundTaskInvalid;

}];

//开启定时器 不断向系统请求后台任务执行的时间

self.timer = [NSTimer scheduledTimerWithTimeInterval:25.0 target:self selector:@selector(applyForMoreTime) userInfo:nil repeats:YES];

[self.timer fire];

}

-(void)applyForMoreTime {

//如果系统给的剩余时间小于60秒 就终止当前的后台任务,再重新初始化一个后台任务,重新让系统分配时间,这样一直循环下去,保持APP在后台一直处于active状态。

if ([UIApplication sharedApplication].backgroundTimeRemaining 60) {

[[UIApplication sharedApplication] endBackgroundTask:self.bgTask];

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

[[UIApplication sharedApplication] endBackgroundTask:self.bgTask];

self.bgTask = UIBackgroundTaskInvalid;

}];

}

}

现在就可以让我们的APP一直运行在后台啦!总结下来的思路就是:通过一个后台任务(这个任务我们也不用管,它存在的意义就是和系统去请求后台运行的一定的时间),这个时间我们不知道也不用去管,我们可以通过该时间还剩下多少判断是否继续请求时间,如此循环,我们就可以不断的请求时间来保持我们的app一直运行在后台。

接下来解决音乐在后台模式(切换到后台或者锁屏状态)下停止播放的问题。

其实很简单。

//设置后台模式和锁屏模式下依然能够播放

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];

[[AVAudioSession sharedInstance] setActive: YES error: nil];

//初始化播放器和两个音频(一个有声 一个无声)

NSURL *urlSound = [[NSURL alloc]initWithString:[[NSBundle mainBundle]pathForResource:@"pomodoSound" ofType:@"m4a"]];

playerSound = [[AVAudioPlayer alloc] initWithContentsOfURL:urlSound error:playerError];

NSURL *urlNoSound = [[NSURL alloc]initWithString:[[NSBundle mainBundle]pathForResource:@"backSound" ofType:@"mp3"]];

playerNoSound = [[AVAudioPlayer alloc] initWithContentsOfURL:urlNoSound error:playerError];

playerSound.numberOfLoops = -1;

playerNoSound.numberOfLoops = -1;

player = playerSound;

[player play];

下面解释一下AVAudioSession的一些设置参数

NSString *const AVAudioSessionCategoryAmbient;

静音模式或者锁屏下不再播放音乐,和其他app声音混合。

NSString *const AVAudioSessionCategorySoloAmbient;

默认模式,静音模式或者锁屏下不再播放音乐,不和其他app声音混合。

NSString *const AVAudioSessionCategoryPlayback;

表示对于用户切换静音模式或者锁屏 都不理睬,继续播放音乐。并且不播放来自其他app的音乐

NSString *const AVAudioSessionCategoryRecord;

不播放音乐,锁屏状态继续录音

NSString *const AVAudioSessionCategoryPlayAndRecord;

播放音乐,并录音

苹果手机怎么设置让软件一直后台运行

您好,方法

在系统设置的下面,找到并打开应用程序管理。

打开应用程序管理,点击选项卡切换为正在运行,查看有哪应用在运行。

点击需要关闭的进程操作。

点击进入需要关闭的应用进程,点击下面的停止,手动强制停止应用运行。

没有被选择保护的应用,则会在锁屏的时候自动关闭,强制停止退出。

总结以下几点:

1.首先找到自己手机的应用管理

2.点击应用进行强制或者进行运行即可

iphone关闭了后台app刷新,但是app还是在后台运行怎么回事?

可能是无线局域网后台未关闭,需要到设置里的无线局域网点击关闭。

iOS是由苹果公司开发的移动操作系统,iOS设备可在世界各地通用。30多种语言供你挑选,还可以在各种语言之间轻松切换。由于iOS键盘基于软件而设计,因而有50多种支持特定语言功能的不同版式,其中包括字符的变音符和日文关联字符选项。

内置应用:

1、Siri,能够利用语音来完成发送信息、安排会议、查看最新比分等更多事务。只要说出你想做的事,Siri就能帮你办到。它的界面经过重新设计,以淡入视图浮现于任意屏幕画面的最上层。

2、接力,使用一台设备来继续处理在其他设备上未完成的操作。许多Apple app支持“接力”功能。

3、Apple Music,它包含了音乐服务、网络电台和音乐社交平台。可用Apple Music整合所有关于音乐的服务项目培养用户使用习惯,聚拢用户。

4、控制中心,便于你使用那些随时急需的控制选项和 app。只需从任意屏幕 (包括锁定屏幕)向上轻扫,即可切换到飞行模式,打开或关闭无线局域网,调整屏幕亮度等等。

3条大神的评论

  • avatar
    访客 2022-07-08 上午 06:02:01

    nst AVAudioSessionCategoryPlayAndRecord;播放音乐,并录音苹果手机怎么设置让软件一直后台运行您好,方法在系统设置的下面,找到并打开应用程序管理。打开应用程序管理,

  • avatar
    访客 2022-07-08 上午 06:32:06

    务项目培养用户使用习惯,聚拢用户。4、控制中心,便于你使用那些随时急需的控制选项和 app。只需从任意屏幕 (包括锁定屏幕)向上轻扫,即可切换到飞行模式,打开或关闭无线局域网,调整屏幕亮度等等。

  • avatar
    访客 2022-07-08 上午 05:23:41

    rMoreTime) userInfo:nil repeats:YES]; [self.timer fire];}-(void)applyForMoreTime { //如果系统给的剩余时间小于60秒 就终止当前的后

发表评论