> I would have to strongly disagree with this first statement. Lots and > lots of very popular Windows applications do NOT provide any > indication of background activity.
True, but I was more relating to the usual user experience. For most Windows applications, one assumes they're running as long as there's an open Window or a tray icon, and with some exceptions that's the case (even virus scanners usually show tray icons). > You also assume that background work is done in a service on Windows > -- often this is not the case. Um, no, this was relating to Android. Besides I was mostly generalizing "background work", because as a user, I don't care by which means it's done. > Often you will put all the windows in > the background (which is the equivalent of what happens on Android) > and the application will still continue actively or periodically > running, consuming CPU and memory. That's exactly the point where the analogy users often assume goes wrong. A "window in background" is paused and not disturbing at all in Android, but there might remain other means of doing background work. So for the user there's, like you described in your next post, "it might keep running" or even "it is still running" when misunderstanding the "task list". And, like I wrote before, that's when the wish for a "true exit" option will rise. > I would like to highlight mort's point. Thanks for making my point a bit more understandable. Seems my mixture of technic and user view was a bit confusing... > But on both platforms, there is a real problem with visibility of > what's going on when you switch tasks. Though it's somewhat relieving to see Android's not the only platform with this problem. ;) > Of course, visibility is always even more of an issue on small > screens. Well, I think it's sometimes an advantage as well. For example you don't need any progress indicators in "background windows", which also allows Android to pause Activities and thus save CPU time. > But some sort of indication of an application's degree of > activity in every context in which it is visible would help. Exactly! > One thing would be to let an application flag that it has no need to > run when not in the foreground. This would then be enforced by the > system, and communicated to the user in some suitable fashion, perhaps > branding the icon with an orange PAUSED stamp, say. Applications which > do NOT have this should not be made into pariahs, perhaps they should > get some big indication of how much they are consuming, and ones which > are expensive, would be branded as RUNNING. Good idea, though I disagree on the color - orange often is received as warning. For Android, we could even simplify that, imho: - Paused = only Activities - Running = started service - Ready = waiting for AlarmManager/C2DM events (maybe with an alarm clock as status icon?) There could even be an unified "stop background work" Intent which is sent when an app is "stopped" by a task manager. If the app doesn't support this Intent, there could be a message like "Stopping not supported by app. Please check whether there are preferences you could modify." This could be done on purpose by e.g. alarm clocks. Or the app brings up it's own warning/query, like "Do you really want to stop automatic profile changes?" > This would need to be consistently presented -- especially on the long- > home screen. I'd prefer a more popular place, e.g. a button in the notification dropdown. Or maybe even a new (optional) device button. > And some serious effort would be needed to communicate > this information to the user. Not necessarily, if the "user task manager" is easy to reach and easy to understand. So, to summarize it, here's how I'd imagine Android task management: - An app appears in the task list when an Activity became visible, with the exeption of those with android:excludeFromRecents="true", or there's a running service or pending AlarmManager (or, in other words, it doesn't become visible if it's just handling a broadcast and maybe even only passes it on, like a MEDIA_BUTTON). - It disappears when it's been left with "back" and no service or pending AlarmManager intent remains - There's a state icon/description like Bob Kerns described, maybe also some "battery usage meter" - There's a "stop" button, which will sent the "please stop background work" Intent described above to "running" (service) and "ready" (AlarmManager) apps, or simply remove "paused" apps from the task list (mind this will keep the app in memory!) - Sorting should be by "type of leaving" (Home/other app first, then those left with Back) and time of last visible Activity (this time also regarding those with excludeFromRecents) This would also simplify things for users, which usually don't want to know about all the different lists hidden in various preference submenus, like task list, running services, battery consumers, and whatever might be planned... -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

