Lớp IntentService cung cấp một cấu trúc đơn giản để chạy
    một thao tác trên một luồng nền. Điều này cho phép thư viện xử lý các hoạt động diễn ra trong thời gian dài
    mà không ảnh hưởng đến khả năng phản hồi của giao diện người dùng. Ngoài ra, một
    IntentService không chịu ảnh hưởng của hầu hết các sự kiện trong vòng đời của giao diện người dùng
    tiếp tục chạy trong các trường hợp làm tắt AsyncTask
    IntentService có một số hạn chế:
- 
        Nó không thể tương tác trực tiếp với giao diện người dùng của bạn. Để đưa kết quả vào giao diện người dùng, bạn
        phải gửi chúng đến Activity.
- 
        Các yêu cầu công việc sẽ chạy tuần tự. Nếu một thao tác đang chạy trong một
        IntentService, và bạn gửi một yêu cầu khác, yêu cầu sẽ chờ cho đến thao tác đầu tiên đã kết thúc.
- 
        Không thể gián đoạn một hoạt động đang chạy trên IntentService.
    Tuy nhiên, trong hầu hết các trường hợp, IntentService là cách ưu tiên để thực hiện
    các thao tác đơn giản trong nền.
Hướng dẫn này chỉ cho bạn cách thực hiện những việc sau:
- Tạo lớp con IntentServicecủa riêng bạn.
- Tạo phương thức gọi lại bắt buộc onHandleIntent().
- Định nghĩa IntentServicetrong tệp kê khai.
Xử lý các ý định đến
    Để tạo một thành phần IntentService cho ứng dụng, hãy xác định một lớp
    mở rộng IntentService và trong đó, xác định một phương thức
    ghi đè onHandleIntent(). Ví dụ:
Kotlin
class RSSPullService : IntentService(RSSPullService::class.simpleName) override fun onHandleIntent(workIntent: Intent) { // Gets data from the incoming Intent val dataString = workIntent.dataString ... // Do work here, based on the contents of dataString ... } }
Java
public class RSSPullService extends IntentService { @Override protected void onHandleIntent(Intent workIntent) { // Gets data from the incoming Intent String dataString = workIntent.getDataString(); ... // Do work here, based on the contents of dataString ... } }
    Xin lưu ý rằng các lệnh gọi lại khác của thành phần Service thông thường, chẳng hạn như
    onStartCommand() tự động được gọi bằng
    IntentService. Trong IntentService, bạn nên tránh
    ghi đè các lệnh gọi lại này.
Để tìm hiểu thêm về cách tạo IntentService, hãy xem Mở rộng phần mở rộng
Lớp IntentService.
Xác định dịch vụ ý định trong tệp kê khai
    IntentService cũng cần có một mục nhập trong tệp kê khai ứng dụng.
    Cung cấp mục nhập này dưới dạng
    <service>
    là một phần tử con của
    Phần tử 
    <application>:
<application android:icon="@drawable/icon" android:label="@string/app_name"> ... <!-- Because android:exported is set to "false", the service is only available to this app. --> <service android:name=".RSSPullService" android:exported="false"/> ... </application>
    Thuộc tính android:name chỉ định tên lớp của
    IntentService
    Lưu ý rằng
    <service>
    một phần tử không chứa
    bộ lọc ý định. Chiến lược phát hành đĩa đơn
    Khi gửi yêu cầu công việc đến dịch vụ, Activity sẽ sử dụng một
    rõ ràng Intent, vì vậy không cần bộ lọc. Việc này cũng
    có nghĩa là chỉ các thành phần trong cùng một ứng dụng hoặc trong ứng dụng khác có
    cùng một mã nhận dạng người dùng có thể truy cập vào dịch vụ.
    Giờ đây, khi đã có lớp IntentService cơ bản, bạn có thể gửi yêu cầu công việc
    với đối tượng Intent. Quy trình tạo các đối tượng này
    và gửi chúng đến IntentService của bạn được mô tả trong
    Gửi yêu cầu công việc đến dịch vụ nền.
