Understanding Threads in Android
Shishupal Singh
Threads
A thread is a lightweight unit of execution inside a program.
A program (process) can have multiple threads running
simultaneously.
CONTE NTS
1. Why Threads in Android? 2. Android’s Threading Model
3. Real-Time Usage of Threads in Android 4. Android Components for Thread Management
5. E xample: Download Simulation in Android 6. Using Handler (Cleaner Way)
7. Real-Time Problem & Solution 8. Key Concepts to E mphasize
01
Why Threads in Android?
Why Threads in Android?
Android apps are event-driven and have a single Main/UI thread by default. The Main thread is responsible for:
Drawing the screen. Updating UI elements.
Handling user input (touch, clicks, typing).
If you run long operations (like file download, network requests, database queries) on the Main thread → App freezes → system throws ANR (Application
Not R esponding) error. That’s why we use threads to perform background tasks while keeping the app responsive.
02
Android’s Threading Model
Android’s Threading Model
Main (UI) Thread Background Threads Communication
Manages UI updates & user interaction. Handle long-running or intensive tasks. Background threads must communicate
results back to UI thread.
03
R eal-Time Usage of Threads in Android
R eal-Time Usage of Threads in Android
Downloading a file from the internet: Fetching data from a database:
Background thread → perform download; Background thread → run SQL query;
UI thread → show download progress & update TextView/ProgressBar. UI thread → display results in R ecyclerView.
Image processing (e.g., filters in an editor app): R eal-time sensor data (Accelerometer, GPS):
Background thread → apply filter; Background thread → read sensor updates;
UI thread → show final image. UI thread → update map or chart.
04
Android Components for Thread Management
Android Components for Thread Management
Thread + Runnable → Basic threading. Handler + Looper → Pass messages from AsyncTask (Deprecated) → Earlier used for
background → UI thread. background + UI updates.
Kotlin Coroutines (Recommended) → Simplified threading model (not
Executors → Thread pool management (modern Java concurrency).
Java but very common in modern Android).
05
E xample: Download Simulation in Android
Example: Download Simulation in Android
Practical
🔑 Key Points:
Background Thread → performs work ([Link]() simulates runOnUiThread() → posts updates safely to UI thread.
download).
06
Using Handler (Cleaner Way)
Using Handler (Cleaner Way)
Practical
07
Real-Time Problem & Solution
P roblem:
Suppose you are building a music streaming app. When the user clicks P lay:
The app should download audio chunks from the internet.
The UI should remain responsive (so the user can pause, stop, or seek).
A progress bar must show download progress.
Solution using Threads:
1
Background thread → download music chunks.
Main thread → update UI (playback controls, progress).
Handler / runOnUiThread → communicate between them.
08
Key Concepts to Emphasize
Key Concepts to E mphasize
1 Thread lifecycle → New, R unnable, R unning, Waiting, 2 UI Thread R estriction → Only Main thread updates UI.
Terminated (same as Java).
3 ANR P roblem → Never block UI thread with heavy tasks. 4 Synchronization → When multiple threads share resources (e.g.,
database or shared preferences).
5 Thread Management Tools → Handler, E xecutorService,
Coroutines.
Summary for Students:
A Java thread is for general parallel execution. In Android, threads are crucial for responsiveness (avoid freezing UI). Always run heavy tasks on background
threads and update the UI via Main thread (Handler/runOnUiThread/E xecutors). R eal-time apps (YouTube, Instagram, Maps, Spotify) rely on this model
heavily.
Thank You