> 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

Reply via email to