make-money-468x60

Tìm Hiểu Service Android

Khái niệm Service là gì ?
Service là một trong 4 componet cơ bản của android (Service, Activitity , Content Provider, Broadcast Recevice). Service là một dịch vụ chạy ản dưới để thực hiện các thao tác mà không cần tương tác đến người dùng.
Ví dụ: Khi chúng ta muốn nghe một bản nhạc mà trong khi đó người dùng đang sử dụng ứng dụng khác. hoặc khi chúng ta load dữ liệu trừ trên mạng về mà không ảnh hưởng đến các hoạt động khác.

Phân loại service.
Có 2 loại service chính .
+ Started : một service bắt đầu giống như một component khác như Activites, để bắt đầu khởi tạo một service thì chúng ta phải gọi hàm startService(). " Đối với hàm này thì thực hiện một cách đơn lẻ mà không trả về một giá trị nào cả cho đối tượng ". nếu khi thực hiện xong thì nó sẽ dừng lại.
+ Bound : Một service được ràng buộc khi các component ràng buộc nhau thông qua gọi hàm binService(). Khi đó service ràng buộc nó thường xem như giao tiếp giữa client - sever.
Nó cho phép kết nối và trao đổi giữa liệu qua lại với nhau như một đường truyền dữ liệu. nếu khi tất cả các component không rằng buộc nữa thì hệ thống sẽ hủy.

Vòng đời của Service
Cũng giống như một Activity hoặc một Fragment thì service cũng có vòng đời riêng của nó, sau đây tôi xin trình bày vòng đời của 2 loại này nhé..
Vòng đời của Started :
StartService() -> Oncreate() -> OnStartCommand()->RunningService() ->Ondestroy()->shut Down().
Vòng đời của Bound :
BinService() -> Oncreate() ->OnBind()->Running Service() -> Onunbind()-> OnDestroy()->Shut down.
Cách tạo service
Để tạo một service bạn phải kế thừa từ một lớp Service hoặc lớp con của Service,  nhưng điều quan trọng là bạn phải bám sát vòng đời của service và onverload các phương thức quan trọng sau, vì thế tôi sẽ nói sơ qua về các phương thức quan trọng này.
   + OnstartCommand() : Hệ thống sẽ gọi hàm này khi một componnent nào đó hoăc một Activity yêu cầu bắt đầu bắt StartService(). nếu khi bạn sử dụng service kiểu ràng buộc thì không cần thêm hàm này vào service.
 + onBind() : Hệ thống sẽ gọi hàm này khi một component sẽ ràng buộc với service bằng cách gọi hàm binservice(). Chú ý quan trọng khi bạn kết nối service bằng giao thức client -sever thì bạn phải trả về giá trị inBinder. hoặc trả về giá trị Null.
+ Oncreate()  : Hệ thống sẽ gọi hàm này khi lần đâu tiên chạy service
+ OnDestroy() : hệ thống sẽ gọi hàm này khi không muốn dùng service nữa, và có thể giải  phóng tài nguyên.
Tắt chế độ service .
Nếu comPonnent bắt đầu bằng cách khởi tạo startService() thì nó chạy cho đến khi nó kết thúc khi sử dụng stopSelf() hoặc stopSevice().

Khai báo Service trong file Manifest
<manifest ... >
 ...
 <application ... >
   <service andrdoeoid:name=".ExampleService"/>
   ...
 </application>
</manifest>