Android is a multitasking system: we can read mail, visit a link contained in a message, share the page on a social and go back to mail, or anything we were doing before.

Android helps us in all this through, more than the idea of app, the idea of task: a task is something we’re doing, and on Android we can do more tasks at the same time. A task remembers how we started and anything we went through, obviously excluding those moments when we moved to other tasks. So, for example, in the previous situation, the task will remember that we opened mail client, opened a message, visited a link with the browser, shared it through a social app. Each of these, in Android, is called activity, so we can imagine a task as a stack of activities.

The first tool that Android offers us to navigate is the back key: its job is going back to the previous activity in the current task, until you get to the home.

Actually there are notable exceptions: in the browser it takes us back in visited pages history, and when there’s an open dialog it lets us close it.

Many developers believe it’s useful manipulating back button action, creating exceptions that might not be that natural for users.

The other tool, sadly quite hidden until Honeycomb, is the recent tasks list, that you can obtain by long pressing the home button in pre-Honeycomb systems. In this way you can move from one task to another reentering them as we left them. Alternatively, one can go back to the home and open the app that began the task we want back.

Since Honeycomb it got much better, with the recent tasks button, showing us the list ordered by last utilization with a screenshot that helps us remember what we were doing.

One last note is to be made about similar tasks, or tasks with affinity by Android terminology: if I perform two similar actions, the result is that the second will be put atop the task of the first one, avoiding multiple similar tasks. And if, like when we open an app from home, the action is just the same, I’ll be shown the previous task, and this is what allows the use of the home icons in place of recent tasks feature.

The problems of the old navigation method

Even if, seen like this, things look quite simple and direct after all, actually there are cases when navigation can even become frustrating.

Surely it’s happened to everyone to browse Google Play visiting similar apps of similar apps of similar apps… ending with an incredibly long task from which, to get out, one began pressing convulsively the back button.

Another frustrating situation is when we’re doing some secondary activity with respect to the current task (ex: sharing a video via mail) and it takes so long that we forget what we were doing. Pressing back we’ll find ourselves at the video list, while we would have expected the mail list.

The problem in short is that there was no way to be sure of what happened pressing back, nor of staying inside the app you’re working at the moment.

Android tries to deal with both these problems by adding a new type of “back”, that they actually call “up“, that is the button at the top left that lets you navigate up in the app hierarchy. Sometimes it will have the same result as back button, some other times instead, when we’re in a secondary app (ex: video sharing) it lets us leave the primary task and create one just for this other app.

One problem that cannot be solved is complex apps that lack an optimal management of the back stack (the stack of activities that form a task), with results that can confuse the user bringing them into a labyrinth more than a stack of activities. In this case, it’s developer’s responsibility… and it’s your civic duty informing them!

Notifications and widgets: two particular problems

In all this, opening tasks through notifications and widgets plays a separate role. Generally it means taking a shortcut: as an example if we get notification of a message or we see a new one in a widget that shows them, and we touch it, we’ll go straight to the activity that shows the message and possibly lets us answer.

In the case of widgets the problem was that, when pressing back, we would go back to the home, which might perplex those who would expect to go back to the message list activity. The solution was to rebuild the path that one would have followed to get to that activity, so that there are no surprises (note: on pre-JellyBean systems it’s developer’s business implementing this mechanism).

In case of notifications instead the problem is more complex, because the starting point might be something else than the home (we could open a message notification while doing something else). in that case the behavior was to open the notification as if it was part of the current task, so that one could immediately go back to what he was doing. But if this notification requires more attention and some actions to be performed, we would end up with a task piled up over another that has nothing to do with it. Total confusion.

The solution found by Android was to renounce to immediate return to previous task (counting on the new “recent tasks” feature) and opening a new task for each notification.

Conclusions

From Honeycomb to Jellybean (3.0 – 4.1) there has been a real revolution in Android navigability. We have shown you the news, and we hope we gave you a better knowledge  about what Android can do and developers should do. What do you think about it? Have you ever had experience with apps that had a bad navigation system? Comment!