理解允许定位,音频,网络电话..

大家都知道我们的程序在后台运行的时间是10分钟,10分钟后便会停止。但是像实时定位,播放音频,以及网络电话这些功能我们需要在后台持续运行。那么我们就要进行相应的设置。

- (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.
    */

    if ([[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)])
    { //Check if our iOS version supports multitasking I.E iOS 4
        if ([[UIDevice currentDevice] isMultitaskingSupported])
        { //Check if device supports mulitasking
            UIApplication *application = [UIApplication sharedApplication];
            //Get the shared application instance  

            __block UIBackgroundTaskIdentifier background_task;
            //Create a task object  

            background_task = [application beginBackgroundTaskWithExpirationHandler: ^{
                /*
                 当应用程序后台停留的时间为0时,会执行下面的操作
                 (应用程序后台停留的时间为600s,可以通过backgroundTimeRemaining查看)
                 */
                [application endBackgroundTask: background_task];
                 //Tell the system that we are done with the tasks
                background_task = UIBackgroundTaskInvalid;
                //Set the task to be invalid  

                //System will be shutting down the app at any point in time now
            }];  

            // Background tasks require you to use asyncrous tasks  

            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
                //Perform your tasks that your application requires
                NSLog(@"time remain:%f", application.backgroundTimeRemaining);
                [application endBackgroundTask: background_task];
                //End the task so the system knows that you are done with what you need to perform
                background_task = UIBackgroundTaskInvalid; //Invalidate the background_task
            });
        }
    }
}

修改应用的Info.plist 文件,你需要在Info.plist文件中添加UIBackgroundModes字段,该字段的值是应用支持的所有后台模式,是一个数值类型。目前此数 组可以包含“audio”、“location”和“voip”这三个字符串常量.

时间: 2024-10-10 08:13:29

理解允许定位,音频,网络电话..的相关文章

深入理解CSS定位中的偏移

× 目录 [1]定位 [2]包含块 [3]偏移属性[4]绝对定位[5]格式化 [6]auto 前面的话 CSS有三种基本的定位机制:普通流.浮动和绝对定位.利用定位,可以准确地定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素甚至浏览器窗口本身的位置.但元素究竟如何定位,定位到什么位置,主要依靠top/right/bottom/left这四个偏移属性.本文就定位中的偏移做详细介绍. position定位 值: static | relative | absolute | fi

网络编程(1)——轻松理解网络资源定位

一开始学习网络编程,听起来感觉很难.当时如果按照正确的方法和多理解多思考,学习网络编程其实很简单了.这个过程需要我们不断地里面和码例子,看请来龙去脉,相信如果大家坚持看完学习网络编程知识对大家会很有收获的.如果没有接触过计算机网络的基础知识,推荐一本教科书<计算机网络第六版>,这部书讲得挺不错的,对于入门学习计算机网络的朋友会很有帮助. 下面是一些基础的概念: 客户端:广泛来讲就是客户用的程序应用.日常中的手机软件QQ.微信.拨号器等等就是客户端. 服务端:形象点讲就是处理客户端程序应用发送过

理解position定位

使用css布局position非常重要,语法如下: position:static | relative | absolute | fixed | center | page | sticky 默认值:static,center.page.sticky是CSS3中新增加的值. (1).static 可以认为静态的,默认元素都是静态的定位,对象遵循常规流.此时4个定位偏移属性不会被应用,也就是使用left,right,bottom,top将不会生效. (2).relative 相对定位,对象遵循常

【转载】HRTF音频3D定位技术综述

1. 序 您一定有过这样的经验:在一个炎热的夏夜,讨厌的蚊子在你的耳边飞舞.此时,没有比除掉这个祸害更急所的了,对吧?做到这一点,不必睁大了眼去找蚊子,只需依靠敏锐的听力,一样可以确定蚊子的方位,在漆黑之中也能给其以精确而致命的打击. 站在街头,有时候我们可以看见盲人无需牵引,也可跟随着路上的人群.对于盲人,想来这样不太安全:但不论如何,他们的行为是令人惊奇的肢体才能——聆听,当其被完全利用起来的时候,可以带给人很大的帮助. 实际上,不仅仅是我们的眼睛可以分辨物体的三维定位,我们的耳朵也能做到.

IOS 音频播放

iOS音频播放 (一):概述 Audio Playback in iOS (Part 1) : Introduction 前言 从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改我也因此对于iOS下的音频播放实现有了一定的研究.写这个系列的博客目的一方面希望能够抛砖引玉,另一方面也是希望能帮助国内其他的iOS开发者和爱好者少走弯路(我自己就遇到了不少的坑=.=). 本篇为<iOS音频播放>系列的第一篇,主要将对iOS下实现音频播放的方法进行概述. 基础 先来简单了解一

iOS音频播放 (五):AudioQueue

码农人生 ChengYin's coding life 主页 Blog 分类 Categories 归档 Archives 关于 About Weibo GitHub RSS Where there is a will, there is a way. -- Thomas Edison Aug 2nd, 2014 Audio, iOS, iOS Audio iOS音频播放 (五):AudioQueue Audio Playback in iOS (Part 5) : AudioQueue 在第三

一篇对iOS音频比较完善的文章

转自:http://www.cnblogs.com/iOS-mt/p/4268532.html 感谢作者:梦想通 前言 从事音乐相关的app开发也已经有一段时日了,在这过程中app的播放器几经修改我也因此对于iOS下的音频播放实现有了一定的研究.写这个系列的博客目的一方面希望能够抛砖引玉,另一方面也是希望能帮助国内其他的iOS开发者和爱好者少走弯路(我自己就遇到了不少的坑=.=). 本篇为<iOS音频播放>系列的第一篇,主要将对iOS下实现音频播放的方法进行概述. 基础 先来简单了解一下一些基

共享库加载时重定位

原作者:Eli Bendersky http://eli.thegreenplace.net/2011/08/25/load-time-relocation-of-shared-libraries 本文的目的是解释现代操作系统怎样使得共享库加载时重定位成为可能.它关注执行在32位x86的LinuxOS.但通用的原则也适用于其它OS与CPU. 共享库有很多名字--共享库,共享对象,动态共享对象(DSO),动态链接库(DLL--假设你有Windows背景).为了统一起见.我将尽量在本文里使用"共享库

共享库载入时重定位

原作者:Eli Bendersky http://eli.thegreenplace.net/2011/08/25/load-time-relocation-of-shared-libraries 本文的目的是解释现代操作系统如何使得共享库载入时重定位成为可能.它关注运行在32位x86的LinuxOS,但通用的原则也适用于其他OS与CPU. 共享库有许多名字--共享库,共享对象,动态共享对象(DSO),动态链接库(DLL--如果你有Windows背景).为了统一起见,我将尽量在本文里使用"共享库