grz*_*aks 7 iphone application-design multitasking ios4
我们正在为汽车司机开发iPhone GPS应用程序.
您可能知道,iOS4引入了多任务处理,因此我们的应用程序可以在后台运行 - 事实就是如此.这是其功能的一部分.
问题在于在iOS4上关闭应用程序的标准方法.以下是两种情况:
1)用户想要将应用程序放到后台:
通常,在iPhone iOS4上,它就像按"主页"按钮一样简单.
2)用户想关闭应用程序(即到达目的地点后):
标准iPhone iOS4程序如下:
用户每次到达某处(例如,每天两次)都必须终止我们的申请,以节省他的电池.如果他不这样做 - GPS会很快耗尽所有电池电量.此外,我们无法在后台运行时禁用GPS,因为我们需要主要应用程序功能的精确位置信息.
当然,您无法更改应用程序中"主页"按钮的行为(即可接受AppStore).此外,我认为将预期行为改为与iPhone平台上的其他应用程序完全不同的东西并不是一个好的解决方案.
你觉得怎么样?你知道任何好的解决方案吗?我们有一个想法,但我不想向你提出任何建议.
我们的解决方案非常简单:只需在屏幕右上方显示小的"x"按钮即可.点击它会终止应用程序(可能在一些确认问题之后).
这个解决方案有一个很大的优势:它不会改变默认的系统行为 - 用户意识到iOS4多任务使用仍然可以按下"主页"按钮在后台运行应用程序并以iPhone方式关闭它.
你怎么看?
Apple建议您这样做(iPhone App编程指南):
应用程序只能注册重要的位置更改.(推荐)对于带有蜂窝无线电的设备,iPhone OS 4及更高版本中提供了重要更改位置服务.它提供了一种接收位置数据的低功耗方式,强烈建议使用.仅当用户的位置发生显着变化时,才会提供新的位置更新.如果在运行此服务时应用程序被挂起,则新的位置更新将导致应用程序在后台被唤醒以处理它们.同样,如果在运行此服务时终止应用程序,则系统会在新位置数据可用时自动重新启动应用程序.
您是否通过调用startMonitoringSignificantLocationChangesCLLocationManager的方法尝试使用它?
退出应用程序应该只作为最后的手段.您可以在不使用应用程序时关闭位置服务.您可以调用stopUpdatingLocationCLLocationManager将其关闭.
- (void)stopUpdatingLocation
只要您的代码不再需要接收与位置相关的事件,就应该调用此方法.当没有客户端需要位置数据时,禁用事件传递使接收器可以选择禁用适当的硬件(从而节省功率).您始终可以通过再次调用startUpdatingLocation方法重新启动位置更新的生成.
由于您需要在后台运行以实现定位目的,并且 Apple 不允许您终止自己的应用程序,因此用户必须了解他们需要自行终止应用程序以节省电量。
一个快速的解决方案是在到达目的地后关闭定位服务。您甚至可以提醒用户发生这种情况,一旦他们点击“确定”按钮,您就可以阻止它运行和/或在应用程序暂停时在后台运行。
| 归档时间: |
|
| 查看次数: |
6409 次 |
| 最近记录: |