2017-09-21 15 views
6

Trong trường hợp ServiceIntentService những khác biệt chính là Service chạy trên các chủ đề chính trong khi IntentService không phải là, và kết thúc sau bản thân khi tác phẩm được thực hiện trong khi chúng ta phải gọi một trong hai stopService() hoặc stopSelf() để ngăn chặn một Service.JobIntentService liên quan đến JobService như thế nào?

Cả hai chỉ có thể được chuyển đến startService().

Điều gì về JobServiceJobIntentService?

Hãy lấy đoạn mã sau:

JobInfo job = new JobInfo.Builder(id, new ComponentName(context, ExampleJobService.class)) 
    .build(); 

JobScheduler scheduler = (JobScheduler) context 
    .getSystemService(Context.JOB_SCHEDULER_SERVICE); 

scheduler.schedule(job); 

thể ExampleJobService.class tham khảo cả một JobService và một JobIntentService?

Hành vi sẽ giống như với ServiceIntentService (ngoài JobScheduler không thể bắt đầu công việc ngay lập tức)?

Trả lời

2

JobIntentService về cơ bản là sự thay thế cho IntentService, cung cấp ngữ nghĩa tương tự theo cách "phát đẹp" với các hạn chế thực thi nền mới của Android O. Nó được thực hiện như là một công việc theo lịch trình trên O +, nhưng đó là trừu tượng đi - ứng dụng của bạn không cần phải quan tâm rằng đó là một công việc.

Không bao giờ schedule() công việc trực tiếp mà bạn mong muốn sử dụng thông qua lớp hỗ trợ JobIntentService. JobIntentService sử dụng hệ thống enqueue() trong trình lên lịch công việc và bạn không thể kết hợp và đối sánh enqueue()schedule() cho cùng một công việc.

+0

JobIntentService có chạy trên một chuỗi khác không? –

+1

** Alexander Farber **, theo [doc] (https://developer.android.com/reference/android/support/v4/app/JobIntentService.html#onHandleWork%28android.content.Intent%29) 'onHandleWork 'chạy trên chuỗi nền – user2650128

Các vấn đề liên quan