You and Your Main Thread

Networking does not happen immediately. A web server may take as long as a second or two to respond, and a file download can taken even longer than that. Because networking can take so long, Android disallows all networking on the main thread in Honeycomb and later versions of Android. If you try to do it, Android will throw a NetworkOnMainThreadException. Why? To understand that, you need to understand what a thread is, what the main thread is, and what the main thread does.

A thread is a single sequence of execution. Code running within a single thread will execute one step after another. Every Android app starts life with a main thread. The main thread, however, isn’t a preordained list of steps. Instead, it sits ...

Get Android Programming: The Big Nerd Ranch Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.