When I installed iOS4.0 on my 3GS, it totally killed my battery life. I think it was due to rogue apps continuing to function in the background, particularly the Mail app. This problem seems to have been even more pronounced when my 3G signal was very low. Mail or other background apps continually try to reach a server, and it ends up draining my battery. My battery life percentages can drop a percent per minute with low 3G signals while I’m not even using the phone. Upgrading to 4.2 has fixed this problem. I won’t go into detail how iOS4 has just about killed my friend’s iPhone 3G.
I have not updated my iPad to iOS4.2 yet because I fear it will kill its amazing battery life. The biggest problem is that the OS has no way to notify the user when background tasks are being completed. Is my NHL app continuously downloading scores? Is the Facebook app or Google Maps using the GPS chip to update my location?
I imagined two solutions for this problem: 1)Create a user edited ‘white list’ that will grant apps background process privileges. Apps that poorly communicate to the user that background processes are needed can be shut down by the user manually. There are options now within the operating system that give privs to GPS or Push Notification access, but a centralized area to easily manage these things would be a great addition.
2) Notify the user in the task switcher which apps are actively performing a background task. This can be done by a visual cue such as the app being highlighted or the progress bar being shown. Looking at my full task switcher, I have no way of knowing which apps are performing background processes.