2010-12-03 47 views
18

我需要开发一个监控网络流量的企业应用程序。基本上它会检测用户是否使用Wi-Fi或蜂窝数据,并保存一段时间内发送和接收的字节数。 我在AppStore上看到了一个完成这项工作的应用程序。 使用Apple提供的可访问性示例,检测wi-fi或蜂窝数据非常简单。 我的问题是保持监视应用程序在后台发送和接收的字节。背景任务是解决这个问题的方法吗?

因为它是一个企业应用程序,我用UIBackgroundModes“voip”来避免应用程序被终止。 我也安装了setKeepAliveTimeout方法,我能够每10分钟看到一次日志,但只能在方法运行10秒后看到。我的意思是,setKeepAliveTimeout让我的应用程序每10分钟运行一次定时器10秒钟。

我在想没有任何背景的任务是我的问题的最佳解决方案。

我会感谢您的任何意见。

编辑:好吧,伙计们。那是完美的方式。

首先你一定要读这: http://www.christian-fries.de/blog/files/tag-ios.html

我想这和它的作品真的很好。 我们所需要做的就是创建一个与主分离线分开的第二个线程。这样我们就可以持续运行连续线程。您还必须在Apple的网站上看到GCD文档。

你应该考虑的企业应用程序的第二件事是将其设置为VoIP应用程序,这样iOS即使在重新启动后也能让你的应用程序运行。这是iOS保持voip应用程序运行的一种特殊行为。

这就是它们。 我希望它能帮助你。

+9

我真的很想知道公司的名字,所以我从来没有开始在那里工作......无论如何 - 技术非常有趣:+1 – vikingosegundo 2010-12-03 19:36:32

+0

你没有太多的选择,背景任务与块是只有用4.0+才能执行代码的合法方式。你是否认为可以在iOS上构建服务? AFAIK如果没有Jailbreaking,你无法做到这一点 – slf 2010-12-03 19:46:33

回答

2

我们没有访问这些数据。没有办法衡量流量。

您看到的应用程序进行了估计(例如1mb/min),并在applicationWillEnterForeground之后进行估计。那么你计算时间x估计交通量,然后我们去。

不幸的是没有办法衡量, 所以我没有在设置的交通复位,然后我正好流1级分钟的音乐。经过几次重复,我得到了我的结果。问题是,这只适用于音频或视频等静态流量处理过程。

希望能帮助 内

编辑:看下面回答!

相关问题