【发布时间】:2010-12-03 19:31:51
【问题描述】:
我需要开发一个监控网络流量的企业应用。基本上,它会检测用户是否使用 wi-fi 或蜂窝数据,并保存一段时间内发送和接收的字节数。 我在 AppStore 看到了一个可以完成这项工作的应用程序。 使用 Apple 提供的 Reachability Sample 检测 wi-fi 或蜂窝数据非常简单。 我的问题是在应用处于后台时继续监控发送和接收的字节数。
因为它是一个企业应用程序,我使用 UIBackgroundModes "voip" 来避免应用程序被终止。 我还安装了 setKeepAliveTimeout 方法,我能够每 10 分钟查看一次日志,但在该方法运行后只能查看 10 秒。我的意思是,setKeepAliveTimeout 让我的应用程序每 1o 分钟运行一个计时器 10 秒。
我在想,后台任务是否是解决我问题的最佳方案。
我会感谢任何 cmets。
编辑:好的,伙计们。这是实现它的完美方式。
首先您必须阅读以下内容: http://www.christian-fries.de/blog/files/tag-ios.html
我试过了,效果很好。 我们需要做的就是创建一个与主线程分离的第二个线程。这样我们就有了一个永远运行的连续线程。您还必须在 Apple 网站上查看 GCD 文档。
对于企业应用程序,您应该考虑的第二件事是将其设置为 voip 应用程序,这样即使在重新启动后,iOS 也会让您的应用程序运行。这是 iOS 必须保持 voip 应用程序运行的一种特殊行为。
就是这样,伙计们。 希望对你有帮助。
【问题讨论】:
-
我真的很想知道这些公司的名字,这样我就永远不会在那里工作了......无论如何——技术非常有趣:+1
-
您别无选择,使用块的后台任务是 4.0+ 执行代码的唯一合法方式。您是否认为可以在 iOS 上构建服务? AFAIK 如果没有越狱,你就无法做到这一点
-
@vikingosegundo - 也许只是编写应用程序来验证账单的正确性。但至于你的意思,如果你为一家公司工作并使用他们的工具,你为什么要期待隐私呢?如果你用公司的电脑浏览互联网,你会期待吗?
-
@vikingosegundo - 感谢徽章。
-
@Peter M — 可能用于账单检查 — 公司账单和客人的任何手机账单、私人手机、使用房屋前街道上手机的人......跨度>
标签: iphone objective-c multithreading ios background