SlideShare une entreprise Scribd logo
1  sur  10
Service
MultiUni
Trần Vũ Tất Bình
Tổng quan
• Là một trong 4 loại thành phần của một ứng
dụng.
• Service chạy nền và không tương tác trực tiếp
với người dùng.
• Tham khảo:
http://developer.android.com/reference/android/app/S
Lifecycle – startService()
onCreate()
onStart()
onDestroy()Service
đang chạy
Service được start
lần đầu
Service lại được yêu
cầu start trong khi đã
chạy rồi
Bên ngoài gọi
stopService() hoặc
service tự stop
Lifecycle – startService()
• Khi có một context nào đó gọi startService()
để start service mong muốn. Nếu service đó
chưa được tạo thì sẽ gọi onCreate() rồi gọi tiếp
onStart() và khi đó service chạy nền bên dưới.
• Nếu sau đó lại có một context muốn start
service này mà service đã đang chạy, chỉ có
phương thức onStart() của service được gọi.
• Dù service có được gọi start bao nhiêu lần thì
cũng chỉ có 1 instance của service và chỉ cần
gọi stopService() một lần để kết thúc service.
Lifecycle – bindService()
onCreate() onBind()
Service
đang chạy
Activity gọi
bindService() để
kết nối tới
service
Bên ngoài gọi
unbindService()
hoặc kết nối bị
ngắt
onUnbind()
Service không còn
kết nối với client
nào nữa và cũng ko
có context nào start
service này
onDestroy()
Service còn chạy,
client muốn kết nối
với service
onRebind()
Lần trước
unBind() với
client này
trả về true
Lifecycle – bindService()
• Thông thường, lifecycle của service khi có
client kết nối từ đầu như sau:
– Cũng bắt đầu bằng onCreate() rồi đến onBind() và
service chạy background.
– Khi không còn client kết nối tới thì service gọi
onUnbind() rồi onDestroy().
Lifecycle
• Có một số trường hợp không thông thường, ví
dụ như:
– Có một context khởi động (start) một service, sau
đó có một số client kết nối (bind) tới service
– Có nhiều client cùng lúc kết nối (bind) tới service
– Một activity vừa gọi startService() vừa gọi
bindService()
…
Các bạn có thể tự làm ví dụ để thử các trường hợp
này.
Xem demo LocalService
• ApiDemos  src 
com.example.android.apis.app
 LocalService
 LocalServiceBinding
LocalServiceController
Sử dụng service
– Dùng trong các ứng dụng nghe nhạc.
– Dùng để xử lý các thao tác mất thời gian và không
nhất thiết phải hiển thị lên activity (download,
upload…)
– Đôi khi cần một ứng dụng vận hành liên tục để xử
lý những việc mong muốn mà không làm phiền
người dùng  service
– Làm những thao tác tính toán, xử lý đều đặn nào
đó và kết quả khi nào người dùng cần thì mới xem
…
Sử dụng service
– Dùng trong các ứng dụng nghe nhạc.
– Dùng để xử lý các thao tác mất thời gian và không
nhất thiết phải hiển thị lên activity (download,
upload…)
– Đôi khi cần một ứng dụng vận hành liên tục để xử
lý những việc mong muốn mà không làm phiền
người dùng  service
– Làm những thao tác tính toán, xử lý đều đặn nào
đó và kết quả khi nào người dùng cần thì mới xem
…

Contenu connexe

Similaire à 6. service

Videoconferencereport
VideoconferencereportVideoconferencereport
Videoconferencereporttuanle1984
 
09 core system services
09  core system services09  core system services
09 core system servicesCơn Gió
 
Life cycle của Android
Life cycle của AndroidLife cycle của Android
Life cycle của AndroidNguyễn Anh
 
ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices ArchitectureIT Expert Club
 
5. broadcast receiver
5. broadcast receiver5. broadcast receiver
5. broadcast receiverJustin Hoang
 
Hướng Dẫn Lập Trình Android: 5. BroadcastReceiver
Hướng Dẫn Lập Trình Android: 5. BroadcastReceiverHướng Dẫn Lập Trình Android: 5. BroadcastReceiver
Hướng Dẫn Lập Trình Android: 5. BroadcastReceiverWendy587439
 

Similaire à 6. service (7)

Videoconferencereport
VideoconferencereportVideoconferencereport
Videoconferencereport
 
09 core system services
09  core system services09  core system services
09 core system services
 
Life cycle của Android
Life cycle của AndroidLife cycle của Android
Life cycle của Android
 
ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices Architecture
 
Bizweb Microservices Architecture
Bizweb Microservices ArchitectureBizweb Microservices Architecture
Bizweb Microservices Architecture
 
5. broadcast receiver
5. broadcast receiver5. broadcast receiver
5. broadcast receiver
 
Hướng Dẫn Lập Trình Android: 5. BroadcastReceiver
Hướng Dẫn Lập Trình Android: 5. BroadcastReceiverHướng Dẫn Lập Trình Android: 5. BroadcastReceiver
Hướng Dẫn Lập Trình Android: 5. BroadcastReceiver
 

Plus de Justin Hoang

Tổng quan tài liệu Hướng dẫn hệ thống BMS
Tổng quan tài liệu Hướng dẫn hệ thống BMSTổng quan tài liệu Hướng dẫn hệ thống BMS
Tổng quan tài liệu Hướng dẫn hệ thống BMSJustin Hoang
 
Tam bien kieu Phap
Tam bien kieu PhapTam bien kieu Phap
Tam bien kieu PhapJustin Hoang
 
Huong dan su dung Adobe Presenter
Huong dan su dung Adobe PresenterHuong dan su dung Adobe Presenter
Huong dan su dung Adobe PresenterJustin Hoang
 
Giao trinh corel draw
Giao trinh corel drawGiao trinh corel draw
Giao trinh corel drawJustin Hoang
 
7. xu ly bat dong bo
7. xu ly bat dong bo7. xu ly bat dong bo
7. xu ly bat dong boJustin Hoang
 
2.bat dau voi hello world
2.bat dau voi hello world2.bat dau voi hello world
2.bat dau voi hello worldJustin Hoang
 
1.gioi thieu ve android sdk
1.gioi thieu ve android sdk1.gioi thieu ve android sdk
1.gioi thieu ve android sdkJustin Hoang
 
Hacking your Android (slides)
Hacking your Android (slides)Hacking your Android (slides)
Hacking your Android (slides)Justin Hoang
 
Tutorial How to change the icon
Tutorial How to change the iconTutorial How to change the icon
Tutorial How to change the iconJustin Hoang
 
Cach in file auto cad
Cach in file auto cadCach in file auto cad
Cach in file auto cadJustin Hoang
 

Plus de Justin Hoang (11)

Tổng quan tài liệu Hướng dẫn hệ thống BMS
Tổng quan tài liệu Hướng dẫn hệ thống BMSTổng quan tài liệu Hướng dẫn hệ thống BMS
Tổng quan tài liệu Hướng dẫn hệ thống BMS
 
Tam bien kieu Phap
Tam bien kieu PhapTam bien kieu Phap
Tam bien kieu Phap
 
Huong dan su dung Adobe Presenter
Huong dan su dung Adobe PresenterHuong dan su dung Adobe Presenter
Huong dan su dung Adobe Presenter
 
Giao trinh corel draw
Giao trinh corel drawGiao trinh corel draw
Giao trinh corel draw
 
7. xu ly bat dong bo
7. xu ly bat dong bo7. xu ly bat dong bo
7. xu ly bat dong bo
 
2.bat dau voi hello world
2.bat dau voi hello world2.bat dau voi hello world
2.bat dau voi hello world
 
1.gioi thieu ve android sdk
1.gioi thieu ve android sdk1.gioi thieu ve android sdk
1.gioi thieu ve android sdk
 
Hacking your Android (slides)
Hacking your Android (slides)Hacking your Android (slides)
Hacking your Android (slides)
 
Tutorial How to change the icon
Tutorial How to change the iconTutorial How to change the icon
Tutorial How to change the icon
 
Autocad toan tap
Autocad toan tapAutocad toan tap
Autocad toan tap
 
Cach in file auto cad
Cach in file auto cadCach in file auto cad
Cach in file auto cad
 

6. service

  • 2. Tổng quan • Là một trong 4 loại thành phần của một ứng dụng. • Service chạy nền và không tương tác trực tiếp với người dùng. • Tham khảo: http://developer.android.com/reference/android/app/S
  • 3. Lifecycle – startService() onCreate() onStart() onDestroy()Service đang chạy Service được start lần đầu Service lại được yêu cầu start trong khi đã chạy rồi Bên ngoài gọi stopService() hoặc service tự stop
  • 4. Lifecycle – startService() • Khi có một context nào đó gọi startService() để start service mong muốn. Nếu service đó chưa được tạo thì sẽ gọi onCreate() rồi gọi tiếp onStart() và khi đó service chạy nền bên dưới. • Nếu sau đó lại có một context muốn start service này mà service đã đang chạy, chỉ có phương thức onStart() của service được gọi. • Dù service có được gọi start bao nhiêu lần thì cũng chỉ có 1 instance của service và chỉ cần gọi stopService() một lần để kết thúc service.
  • 5. Lifecycle – bindService() onCreate() onBind() Service đang chạy Activity gọi bindService() để kết nối tới service Bên ngoài gọi unbindService() hoặc kết nối bị ngắt onUnbind() Service không còn kết nối với client nào nữa và cũng ko có context nào start service này onDestroy() Service còn chạy, client muốn kết nối với service onRebind() Lần trước unBind() với client này trả về true
  • 6. Lifecycle – bindService() • Thông thường, lifecycle của service khi có client kết nối từ đầu như sau: – Cũng bắt đầu bằng onCreate() rồi đến onBind() và service chạy background. – Khi không còn client kết nối tới thì service gọi onUnbind() rồi onDestroy().
  • 7. Lifecycle • Có một số trường hợp không thông thường, ví dụ như: – Có một context khởi động (start) một service, sau đó có một số client kết nối (bind) tới service – Có nhiều client cùng lúc kết nối (bind) tới service – Một activity vừa gọi startService() vừa gọi bindService() … Các bạn có thể tự làm ví dụ để thử các trường hợp này.
  • 8. Xem demo LocalService • ApiDemos  src  com.example.android.apis.app  LocalService  LocalServiceBinding LocalServiceController
  • 9. Sử dụng service – Dùng trong các ứng dụng nghe nhạc. – Dùng để xử lý các thao tác mất thời gian và không nhất thiết phải hiển thị lên activity (download, upload…) – Đôi khi cần một ứng dụng vận hành liên tục để xử lý những việc mong muốn mà không làm phiền người dùng  service – Làm những thao tác tính toán, xử lý đều đặn nào đó và kết quả khi nào người dùng cần thì mới xem …
  • 10. Sử dụng service – Dùng trong các ứng dụng nghe nhạc. – Dùng để xử lý các thao tác mất thời gian và không nhất thiết phải hiển thị lên activity (download, upload…) – Đôi khi cần một ứng dụng vận hành liên tục để xử lý những việc mong muốn mà không làm phiền người dùng  service – Làm những thao tác tính toán, xử lý đều đặn nào đó và kết quả khi nào người dùng cần thì mới xem …