iOS开发:保持程序在后台长时间运行 2014 年 5 月 26 日 / NIVALXER / 0 COMMENTS iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因而对后台机制采用墓碑式的“假后台”.除了系统官方极少数程序可以真后台,一般开发者开发出来的应用程序后台受到以下限制:1.用户按Home之后,App转入后台进行运行,此时拥有180s后台时间(iOS7)或者600s(iOS6)运行时间可以处理后台操作2.当180S或者600S时间过去之后,可以告知系统未完成任务,需要申请继…
第一部分 1.先说说iOS 应用程序5个状态: 停止运行-应用程序已经终止,或者还未启动. 不活动-应用程序处于前台但不再接收事件(例如,用户在app处于活动时锁住了设备). 活动-app处于“使用中”的状态. 后台-app不再屏幕上显示,但它仍然执行代码. 挂起-app仍然驻留内存但不再执行代码. 按下Home键时,app从活动状态转入后台,绝大部分app通常在几秒内就从后台变成了挂起. 在内存吃紧的时候,iphone会首先关闭那些挂起的app. 从 iOS 4 开始,应用就可以在退到后台后,…
iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因而对后台机制采用墓碑式的“假后台”.除了系统官方极少数程序可以真后台,一般开发者开发出来的应用程序后台受到以下限制:1.用户按Home之后,App转入后台进行运行,此时拥有180s后台时间(iOS7)或者600s(iOS6)运行时间可以处理后台操作2.当180S或者600S时间过去之后,可以告知系统未完成任务,需要申请继续完成,系统批准申请之后,可以继续运行,但总时间不会超过10分钟.3.当10分钟时间到之后,无论怎么向系统申请继续后台…
前言 一般APP在按下Home键被挂起后,这时APP的 backgroundTimeRemaining 也就是后台运行时间大约只有3分钟,如果在退出APP后,过十几二十二分钟或者更长时间再回到APP,APP就会回到刚打开时的状态,也就是首页:有的项目在被挂起后需要在后台运行一段时间,使有足够的时间来完成与服务器对接的操作,或者需要一直运行的需求:如果需要,则在APP被挂起后,申请后台,来延长后台运行时间. APP申请后台运行的方式有几种: 播放音乐 定位  Newsstand downloads…
请细致阅读以下的许可协议条款和条件之前下载或使用苹果软件.   这些条款和条件构成你和苹果之间的法律协议.   iOS开发人员程序许可协议   目的 你想使用苹果软件(例如以下定义)来开发一个或多个应用程序(例如以下定义)Apple-branded产品执行iOS. 苹果愿意授予您有限的许可使用苹果软件开发和測试您的应用程序在本协议规定的条款和条件. 开发的应用程序在此协议下能够分布在四个方面:(1)通过应用程序商店,假设选择苹果,(2)通过VPP / B2B项目站点,假设选择苹果,(3)在一个有…
Xamarin iOS开发中的编辑.连接.运行 创建好工程后,就可以单击Xamarin Studio上方的运行按钮,如图1.37所示,对HelloWorld项目进行编辑.连接以及运行了.运行效果如图1.38所示本文选自Xamarin iOS开发实战大学霸出品. 图1.38  运行效果 由于在此HelloWorld的功能中没有做任何的事情,所以,运行结果是不会产生任何效果的. 注意:如果是第一次运行Xamarin Studio的程序,可能会出现如下的错误: Error: A valid Xcode…
iOS开发中遇到程序崩溃是很正常的事情,如何在程序崩溃时捕获到异常信息并通知开发者,是大多数软件都选择的方法.下面就介绍如何在iOS中实现: 1. 在程序启动时加上一个异常捕获监听,用来处理程序崩溃时的回调动作  NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler);  官方文档介绍:Sets the top-level error-handling function where you can perform last-minute…
Info.plist和pch文件的作用 建立一个project后,会在Supporting files目录下看到一个"project名-Info.plist"的文件,该文件对project做一些执行期的配置.很重要,不能删除 在旧版本号Xcode创建的project中.这个配置文件的名字就叫"Info.plist" 项目中其它Plist文件不能带有"Info"这个字眼,不然会被错觉得是传说中很重要的"Info.plist" 项…
iOS应用上线 http://www.jianshu.com/p/ffddc5e5f0b9 iOS真机测试 http://www.jianshu.com/p/986e02d38f1b iOS应用程序打包 http://www.jianshu.com/p/bd953c3e389f…
1 前言 上节我们介绍了程序执行的状态,从例子中我们可以发现处理这些状态更改的时候有明确的策略可以遵循,这次我们就来介绍一下. 2 详述 2.1 活动->不活动 使用applicationWillResignActive:/UIApplicationWillResignActiveNotification来“暂停”应用程序的显示.确保工作中不需要及时的用户输入,因为应用程序在一段时间内不会获得任何用户输入. 2.2 不活动->后台 使用applicationDidEnterBackground…
其实实现这个功能很简单,只要调用UIApplication即可.   用法用例:[UIApplication sharedApplication].applicationIconBadgeNumber=33; 当用户打开应用程或者退出应用程序之前把这个值归0就OK了. [UIApplication sharedApplication].applicationIconBadgeNumber=0;…
一.设置捆绑包 设置捆绑包是应用自带的一组文件,用于告诉设置该应用期望得到用户的哪些偏好设置. 新建设置捆绑包:Command+N,在iOS部分中的Resource,选择Settings Bundle图标. 在项目窗口选择名为Settings.bundle的项目,在Root.plist中进行设置. 二.设置属性列表(Root.plist) 其实属性列表的本质就是字典,通过键来检索存储条目的类型和值. 设置的时候记得在编辑区域任意位置右击,然后选中Show Raw Keys/Values选项,用来…
1.安装qt的显示界面程序 2.安装mysql-server 3.给系统增加mysql-server的环境C:\Program Files\MySQL\MySQL Server 5.7\bin 4.将mysql的lib文件夹下的libmysql.dll复制到qt的运行程序下…
一些功能需要管理员权限,例如启动一个服务,这就需要exe在管理员权限下运行,一个方法是在exe上右键,选择“以管理员身份运行”,或者右键-属性-兼容性-勾选“以管理员身份运行此程序” 另一个方法是在程序中搞定. 在项目的.pro文件中添加 QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator'uiAccess='false'" 此时点击Run,会提示“启动程序失败,路径或者权限错误?”可以尝试使用管理员身份启动Qt Crea…
最近项目有个需求需要让app在后台一直运行计时着,找了一些资料,只能用比较无耻的做法了,播放一段没有声音的音频文件,这样你的APP就不会被系统杀掉~~ 我们只需要用到<AVFoundation/AVFoundation.h>框架,然后播放一段没有声音的音频文件就可以实现了,贴代码: #pragma mark - 音频播放,让后台一直运行 //播放器 - (AVAudioPlayer *)audioPlayer { if (_audioPlayer == nil) { dispatch_queu…
// ********************** 推断数组元素是否为空 ********************** NSString *element = [array objectAtIndex:2]; if ((NSNull *)element == [NSNull null]) { } 今天做项目的时候就遇到.要推断数组元素是否为空,我的下面写法,都无效 if(!element) if([element length]>0) if(element== NULL) if(element…
借助.NET Core提供的承载(Hosting)系统,我们可以将任意一个或者多个长时间运行(Long-Running)的服务寄宿或者承载于托管进程中.ASP.NET Core应用仅仅是该承载系统的一种典型的服务类型而已,任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载. 一.承载长时间运行服务 一个ASP.NET Core应用本质上是一个需要长时间运行的服务,开启这个服务是为了启动一个网络监听器.当监听到抵达的HTTP请求之后,该监听器会将请求传递给应用提供的管道进行处…
文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以,1.音乐2.location 3.voip 文二 在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除.应用程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务. 判断是否支持多线程 UIDevice* device = [UIDevice c…
周刊 更多 登录   IOS开发之——绘图(CGContext) 时间 2014-04-21 09:17:43 CSDN博客 原文  http://blog.csdn.net/zhenyu5211314/article/details/24230581 0    CGContextRef context = UIGraphicsGetCurrentCont ext(); 设置上下文 1 CGContextMoveToPoint 开始画线 2 CGContextAddLineToPoint 画直线…
关于 chrome 扩展的文章,很久之前也写过一篇.清除页面广告?身为前端,自己做一款简易的chrome扩展吧. 本篇文章重在分享一些制作扩展的过程中比较重要的知识及难点. 什么是 chrome 扩展程序 扩展程序是一些能够修改或增强 Chrome 浏览器功能的小程序.对于前端工程师而言,其最大的便利就是我们可以应用我们熟悉的 HTML.CSS . Javascript 等技术来制作扩展程序. 如下图所示,这些图标就是各种开发者提供的 chrome 扩展程序: 区分扩展与插件 很多人会误称扩展程…
ASP.NET 工作流 支持长时间运行操作的 Web 应用程序 Michael Kennedy   代码下载位置:MSDN 代码库 在线浏览代码 本文将介绍以下内容: 独立于进程的工作流 同步和异步活动 工作流.活动和持久性 与 ASP.NET 集成 本文使用了以下技术: Windows Workflow Foundation.ASP.NET 目录 管理工作流 同步和异步活动 “空闲”究竟指什么? 同步任务异步化 工作流和活动 持久性 使之变为现实 与 ASP.NET 集成 考虑事项 综述 人们…
关于 chrome 扩展的文章,很久之前也写过一篇.清除页面广告?身为前端,自己做一款简易的chrome扩展吧. 本篇文章重在分享一些制作扩展的过程中比较重要的知识及难点. 什么是 chrome 扩展程序 扩展程序是一些能够修改或增强 Chrome 浏览器功能的小程序.对于前端工程师而言,其最大的便利就是我们可以应用我们熟悉的 HTML.CSS . Javascript 等技术来制作扩展程序. 如下图所示,这些图标就是各种开发者提供的 chrome 扩展程序: 区分扩展与插件 很多人会误称扩展程…
本文转载至 http://mobile.51cto.com/iphone-418166.htm 界面总不是一件很容易事,尤其是iPhone/iPad的界面,做过iOS开发的程序员,一定会感到开发iPhone/iPad的界面是一件多么不容易的事.下面的文章来自10 Essential iOS Developer Tools & Resources, 这个文章介绍了十个iOS开发的基础性工具和资源,其一定会很有效地帮你做iOS的开发. AD:2014WOT全球软件技术峰会北京站 课程视频发布 界面总…
iOS开发 贝塞尔曲线UIBezierPath - 陌云 时间 2014-03-14 11:04:00  博客园-所有随笔区 原文  http://www.cnblogs.com/moyunmo/p/3600091.html 主题 iOS开发C++ iOS开发 贝塞尔曲线UIBezierPath 最近项目中需要用到用贝塞尔曲线去绘制路径 ,然后往路径里面填充图片,找到这篇文章挺好,记录下来 自己学习! 转至 http://blog.csdn.net/guo_hongjun1611/article…
熟悉web开发的朋友可能对页面page的生命周期有一定的了解和认识,正如web开发中的页面生命周期一样,移动客户端开发也有它自己的生命周期.下文将说明ios开发中视图的生命周期既运行顺序. 在ios视图不同的生命周期中,视图控制器会调用不同的方法.如下图: 我们可以将视图分为4个基本状态:视图创建.视图可见.视图不可见.系统低内存. 1.其中当视图正在创建时,会调用viewDidLoad方法,这个时候视图并未出现,而是将视图控制器初始化后刚加载到内存中,这个方法也常用来初始化视图控制器所用,如初…
很多初学iOS开发的人会经常问:“我想学iOS应该从何入手呢?”.作为一个做了2年多各种iOS开发的程序员,只想写写自己的一些心得体会,好和体验与不好的体验.写的不好,请多包涵.希望能起到抛砖引玉的作用. 苹果平台一直采取的是比较激进的策略,所以一直都是更新的很快,所以只是学些表面上的东西,会很快被淘汰,这类程序员的学习方法就是伸手党,到各论坛,各XX群,伸手去要,而不是自己去思考,去尝试,学习那些不会变的东西.iOS我个人的学习路线是object-c到UIKit,再到GCD,网络,及cocos…
iOS开发 关于addChildViewController的理解 前言 我之前是做Android开发的接触ios开发不到一个月的时间,所以在有些东理解上会不自觉的向Android方向靠拢. 理解 通过查阅文档以及相关的博客发现addChildViewController跟我们在 Android 接触的 Fragment 很相似. 好处 我们都知道 iOS 开发默认走的模式是 MVC 模式,当然现在还有一些 MVVM MVP 等等模式,但这些模式都是从 MVC 延伸出去的,MVC 是他们的基础.…
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的知识是你日后开发IOS的基础,没有那些知识你开发IOS会很痛苦,现在很多开发人员做开发都是一知半解,程序质量确实令人担忧,所以还是希望大家能够熟练掌握前面的内容,开发过程中多思考,彻底理解程序运行的原理.机制.好了言归正传,不管怎么样正式进入IOS开发还是令人兴奋的,今天的内容虽然说是开发预览,其实…
.state { text-align: right; height: 16px; line-height: 16px; color: #999; padding-top: 5px; overflow: hidden } .state span { float: left } .state a { color: #0787D8 } 如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易…
如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼,谁叫你恨他呢. 然后你就会发现他没事会琢磨一下在虚拟机里运行一下mac OSX.Mac高大上啊,一用就上瘾.慢慢的,你发现他不再满足虚拟机了.程序员嘛,一般都对性能敏感的.他开始琢磨黑苹果了.这是发病的第一个阶段.这个阶段他会乐此不疲,殊不知也耗散着精力. 第一个阶段玩了一段时间后,他开始受不了了.…