Menjalankan Proses di
Background Thread pada Android
Ahmad Imaduddin
Google Associate Android Developer, Head of Academy Dicoding
Threads
Rangkaian terkecil dari program yang dieksekusi dalam sebuah aplikasi.
UI Threads
Di Android, secara default yang tampil di layar menggunakan UI/Main Thread.
Aturan Thread di Android
Long task -> Hang/Lag/Freeze UI
Lebih dari x (dulu 5) detik -> ANR (Application Not Responding)
Dua (2) Aturan simpel terkait dengan UI Threads:
1. Jangan block UI Threads
2. Jangan akses UI/View dari luar UI Threads
Background Threads?
Thread baru yang berjalan di belakang Main Threads.
Update UI
Sesuai dengan Rule no 2, update UI harus di UI Thread.
Jadi, ketika sudah berbeda Threads, perlu kembali ke UI Thread.
Di Android, bisa dengan menggunakan Handler.
Handler
Dapat mengirim dan memproses message & objek runnable lainnya yang
berhubungan dengan thread.
Asynchronous & Multi Threading
Ini adalah 2 hal yang berbeda.
● Asynchronous : Non blocking Operation
● Synchronous : Sequence Operation
● Single Threading : Satu Thread
● Multi Threading : Banyak Thread
Sync vs Async
Sync vs Async
Sync vs Async
Multi Threads
Multi Threads
Multi Threads
Tools?
1. Executors
2. Coroutines
Executors
Komponen pada Android yang memiliki kemampuan untuk memanajemen banyak
thread sekaligus, baik dari segi urutan proses, penjadwalan, maupun menjalankan
proses secara paralel.
Bisa sebagai replacement dari Asynctask.
Macam-macam:
● newSingleThreadExecutor
● newFixedThreadPool(nThreads)
● newCachedThreadPool
Dicoding Developer Coaching #14: Android | Menjalankan Proses di Background Thread pada Android
Coroutines
● Bagian dari Kotlin
● Lightweight
● Fewer Memory Leaks
● Built-in Cancellation Support
● Jetpack Integration
Coroutines Delay
Dapat men-suspend/delay suatu operasi dalam waktu tertentu tanpa mem-block
thread, dan kemudian kembali setelah waktu tertentu.
Coroutines Dispatcher
● Dispatchers.Main : UI Thread
● Dispatcher.IO : Disk or Network IO
● Dispatcher.Default : CPU intensive di luar Main Thread
● Dispatcher.Unconfined
● newSingleThreadContext("MyOwnThread")
Skenario:
1. Menjalankan proses lama di UI Thread.
2. Menjalankan proses lama di UI Thread secara asynchronous dengan Coroutines.
3. Menggunakan Executors untuk menjalankan proses lama.
Demo Sample App
Referensi
● https://codewala.net/2015/07/29/concurrency-vs-multi-threading-vs-asynchro
nous-programming-explained/
● https://developer.android.com/guide/components/processes-and-threads
● https://www.dicoding.com/academies/14/tutorials/159/
● https://www.baeldung.com/java-executor-service-tutorial
● https://developer.android.com/kotlin/coroutines-adv
REPLACE ME
Contact:
(ahmad@dicoding.com)
THANKS!
Follow us: @dicoding

More Related Content

PDF
Dicoding Developer Coaching #15: Android | Belajar Membuat Service Pertamamu ...
PDF
Dicoding Developer Coaching #25: Android | UI Testing pada Asynchronous denga...
PDF
Apa yang Baru di Android Studio 4.1 - Arif Faidzin
PDF
Tingkatkan Performa Website dengan Bantuan DevTools - Nasrul Gunawan
PDF
Dicoding Developer Coaching #33: Android | Depedency Injection dengan Dagger,...
PDF
Membangun Aplikasi SMS dengan Gammu dan PHP Framework CodeIgniter
PDF
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
PDF
Modul Pelatihan CodeIgniter Dasar
Dicoding Developer Coaching #15: Android | Belajar Membuat Service Pertamamu ...
Dicoding Developer Coaching #25: Android | UI Testing pada Asynchronous denga...
Apa yang Baru di Android Studio 4.1 - Arif Faidzin
Tingkatkan Performa Website dengan Bantuan DevTools - Nasrul Gunawan
Dicoding Developer Coaching #33: Android | Depedency Injection dengan Dagger,...
Membangun Aplikasi SMS dengan Gammu dan PHP Framework CodeIgniter
Dicoding Developer Coaching #23: Android | Membangun Modern App dengan Jetpac...
Modul Pelatihan CodeIgniter Dasar

What's hot (7)

PDF
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
PPTX
Android Workshop beginner
PPTX
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
PDF
Cara Mudah Berkolaborasi dengan Github - Gilang Ramadhan
PPTX
Android Workshop for Intermediate
PDF
Belajar Server Side Rendering Yuk! - Dimas Maulana Dwi Saputra
PDF
Slide - Aliber 2.0 (Human Resource Management)
Dicoding Developer Coaching #35: Android | Setup Continuous Integration di An...
Android Workshop beginner
1.suryo_atmojo-materi react-native 1 (mengenal react-native)
Cara Mudah Berkolaborasi dengan Github - Gilang Ramadhan
Android Workshop for Intermediate
Belajar Server Side Rendering Yuk! - Dimas Maulana Dwi Saputra
Slide - Aliber 2.0 (Human Resource Management)
Ad

Similar to Dicoding Developer Coaching #14: Android | Menjalankan Proses di Background Thread pada Android (20)

PDF
Pertemuan 11 thread dan asyntask
PDF
Pertemuan 2 - Materi [MP - 2016].pdf
PDF
Evaluasi Windows 8 dari Sisi HCI
PDF
Live coding #1
PPTX
Power point android dan aplikasinya
PDF
Kajian 2 3-batasan masalah
PPTX
BAB 2 SISTEM KOMPUTER-2 INformatika kelas X.pptx
PPTX
BAB 2 SISTEM KOMPUTER-2 INformatika kelas X.pptx
PDF
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
PDF
Java mobile eition
DOCX
Modul ajar membuat aplikasi mobile multiplatform menggunakan android studio
PDF
Live coding andorid
PPTX
Ppt android destika
PDF
372 Dasar Pengenalan Android Programming
PDF
Membuat Aplikasi Android dengan App Inventor 2
PPTX
Fundamental android application development
PDF
Pengantar Android
PPTX
Presentasi komdas abiyoga nur sa'ad
PDF
Modul 2 dunia komputer
PPTX
Kodular.pptx
Pertemuan 11 thread dan asyntask
Pertemuan 2 - Materi [MP - 2016].pdf
Evaluasi Windows 8 dari Sisi HCI
Live coding #1
Power point android dan aplikasinya
Kajian 2 3-batasan masalah
BAB 2 SISTEM KOMPUTER-2 INformatika kelas X.pptx
BAB 2 SISTEM KOMPUTER-2 INformatika kelas X.pptx
Pemrograman Mobile - (Pengenalan dan Instalasi Android)
Java mobile eition
Modul ajar membuat aplikasi mobile multiplatform menggunakan android studio
Live coding andorid
Ppt android destika
372 Dasar Pengenalan Android Programming
Membuat Aplikasi Android dengan App Inventor 2
Fundamental android application development
Pengantar Android
Presentasi komdas abiyoga nur sa'ad
Modul 2 dunia komputer
Kodular.pptx
Ad

More from DicodingEvent (20)

PDF
Developer Coaching #114.pdf
PDF
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
PPTX
tantangan menjadi developer di abad 21
PDF
Mengenalkan augmented reality (ar) pada snapchat
PDF
Membangun Aplikasi Serverless di Platfrom AWS
PDF
IDCamp X Madrasah: Pengenalan Computational Thinking
PDF
Membuat Produk Digital Terbaik ala Startup Unicorn
PDF
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
PDF
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
PDF
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
PDF
Potensi karier menjadi ios developer di masa depan
PDF
Id camp x dicoding live : persiapan jadi software engineer hebat 101
PDF
Tips sukses berkarir sebagai developer dan programmer 2021
PPTX
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
PDF
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
PDF
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
PDF
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
PDF
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
PDF
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
PDF
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...
Developer Coaching #114.pdf
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...
tantangan menjadi developer di abad 21
Mengenalkan augmented reality (ar) pada snapchat
Membangun Aplikasi Serverless di Platfrom AWS
IDCamp X Madrasah: Pengenalan Computational Thinking
Membuat Produk Digital Terbaik ala Startup Unicorn
TechTalk 2021: Peran IT Security dalam Penerapan DevOps
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
Membuat Solusi Bermanfaat dengan Programming - Nur Rohman
Potensi karier menjadi ios developer di masa depan
Id camp x dicoding live : persiapan jadi software engineer hebat 101
Tips sukses berkarir sebagai developer dan programmer 2021
Teknologi Baru Android di Google I/O 2021 - Andrew Kurniadi
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...
Pengantar Cloud Computing dengan AWS - Petra Novandi Barus
Dicoding Developer Coaching #36: Android | Pentingnya Performa pada Aplikasi ...
Dicoding Developer Coaching #34: Android | Modular Android App dengan Dynamic...
Dicoding Developer Coaching #32: Android | Reactive Programming dengan RxJava...

Recently uploaded (11)

PPTX
01 PAPARAN PRIntah pendahuluan OLI AKMIL.pptx
PPTX
teknik tempur dasar nikpursar prajurit.pptx
PDF
ASESMEN PENILAIAN PEMBELAJARAN KELAS X SMK/SMA
PPTX
Materi PKKMB 2025_Prodi Magister Pend Bahasa Indonesia (1).pptx
PDF
Growth Mindset pada Anak Presentasi Pembelajaran Mendalam
PDF
Dimensi Profil Lulusan Pembalajaran Mendalam Presentasi Biru Ilustratif.pdf
PPTX
14- Manajemen Keuangan Kewirausahaan maret 2025
PPTX
Pengantar Ilmu Sejarah.pptxPengantar Ilmu Sejarah.pptx
PPTX
Tata Cara Penulisan Surat Resmi dan Proposal Kegiatan.pptx
PDF
Tugas dan Wewenang Majelis Perwakilan Kelas (MPK)
PDF
Compro pt guard wlwkwkwkwwkwkwkwkkwkwkwkwk
01 PAPARAN PRIntah pendahuluan OLI AKMIL.pptx
teknik tempur dasar nikpursar prajurit.pptx
ASESMEN PENILAIAN PEMBELAJARAN KELAS X SMK/SMA
Materi PKKMB 2025_Prodi Magister Pend Bahasa Indonesia (1).pptx
Growth Mindset pada Anak Presentasi Pembelajaran Mendalam
Dimensi Profil Lulusan Pembalajaran Mendalam Presentasi Biru Ilustratif.pdf
14- Manajemen Keuangan Kewirausahaan maret 2025
Pengantar Ilmu Sejarah.pptxPengantar Ilmu Sejarah.pptx
Tata Cara Penulisan Surat Resmi dan Proposal Kegiatan.pptx
Tugas dan Wewenang Majelis Perwakilan Kelas (MPK)
Compro pt guard wlwkwkwkwwkwkwkwkkwkwkwkwk

Dicoding Developer Coaching #14: Android | Menjalankan Proses di Background Thread pada Android