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 ...