在我的应用中,我正在使用CLLocationManager和AdWhirl。我没有对背景模式进行任何具体的开发:我不希望我的应用程序在后台运行时工作,即当用户按下“主页按钮”时,GPS位置不应该更新。
昨天晚上我按了“主页按钮”,今天早上iPhone没电了。这是一款带有iOS 4.1的iPhone 4,没有越狱,而且没有运行后台应用程序。
昨天晚上电池电量约为35%,今天早上为0%(iPhone关机)。
我在委托中设置了断点,每次更新GPS位置时都会调用断点。当app处于后台模式时,不会调用委托。所以我认为GPS在背景模式下真的被禁用了:好的。
今天早上,我正在关注电池耗尽:每15分钟下降约1%。我觉得有点太多了。
当应用进入后台模式时,我应该做些具体的事情吗?你认为1%的下降是正常的吗?
答案 0 :(得分:0)
是的,互联网接入和GPS是两个大电池。我根本不知道你的意思是什么,因为没有其他应用程序正在运行你已经得出结论,事实上发生了什么:)假设你已经测试没有运行的应用程序,并没有得到每15%1%分钟...
对于adwhirl,当应用程序进入后台时,它是否已经停止访问互联网尚不清楚,但您可以将其添加到您的应用代表:
- (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, called instead of applicationWillTerminate: when the user quits.
*/
[lm stopUpdatingLocation];
[adView ignoreAutoRefreshTimer]
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
/*
Called as part of transition from the background to the active state: here you can undo many of the changes made on entering the background.
*/
[adView doNotIgnoreAutoRefreshTimer]
[lm startUpdatingLocation];
}
(lm和adView是位置管理器对象和adWhirlView,都在App Delegate中声明。我发现通过我在App Delegate中制作的方法进行所有位置管理更有用。)