Thêm điểm vào câu trả lời được chấp nhận:
Xem cách sử dụng IntentService trong API Android. ví dụ:
public class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");
}
@Override
protected void onHandleIntent(Intent intent) { ...}
Để tạo thành phần IntentService cho ứng dụng của bạn, 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 ().
Ngoài ra, hãy xem mã nguồn của IntentService, đó là phương thức xây dựng và vòng đời như onStartCommand ...
@Override
public int More ...onStartCommand(Intent intent, int flags, int startId) {
onStart(intent, startId);
return mRedelivery ? START_REDELIVER_INTENT : START_NOT_STICKY;
}
Dịch vụ cùng với AsyncTask là một trong những cách tiếp cận tốt nhất cho nhiều trường hợp sử dụng trong đó tải trọng không lớn. hoặc chỉ tạo một lớp mở rộng IntentSerivce. Từ phiên bản Android 4.0, tất cả các hoạt động mạng phải ở trong quá trình nền nếu không ứng dụng biên dịch / xây dựng không thành công. chủ đề riêng biệt từ UI. Lớp AsyncTask cung cấp một trong những cách đơn giản nhất để thực hiện một tác vụ mới từ luồng UI. Để thảo luận thêm về chủ đề này, xem bài viết trên blog
từ hướng dẫn dành cho nhà phát triển Android :
IntentService là một lớp cơ sở cho các Dịch vụ xử lý các yêu cầu không đồng bộ (được biểu thị dưới dạng Ý định) theo yêu cầu. Khách hàng gửi yêu cầu thông qua các cuộc gọi startService (Ý định); dịch vụ được bắt đầu khi cần thiết, lần lượt xử lý từng Intent, sử dụng luồng công nhân và tự dừng khi hết công việc.
Mẫu thiết kế được sử dụng trong IntentService
: Mẫu "bộ xử lý hàng đợi công việc" này thường được sử dụng để giảm tải các tác vụ từ luồng chính của ứng dụng. Lớp IntentService tồn tại để đơn giản hóa mẫu này và chăm sóc các cơ chế. Để sử dụng nó, hãy mở rộng IntentService và triển khai onHandleIntent (Intent). IntentService sẽ nhận được Ý định, khởi chạy một luồng công nhân và dừng dịch vụ khi thích hợp.
Tất cả các yêu cầu được xử lý trên một luồng công nhân duy nhất - chúng có thể mất chừng nào cần thiết (và sẽ không chặn vòng lặp chính của ứng dụng), nhưng mỗi lần chỉ có một yêu cầu sẽ được xử lý.
Lớp IntentService cung cấp một cấu trúc đơn giản để chạy một hoạt động trên một luồng nền đơn. Điều này cho phép nó xử lý các hoạt động 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 của bạn. Ngoài ra, một IntentService không bị ảnh hưởng bởi hầu hết các sự kiện vòng đời giao diện người dùng, do đó, nó tiếp tục chạy trong các trường hợp sẽ tắt AsyncTask.
Một IntentService có một vài 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ả của nó vào UI, bạn phải gửi chúng đến một Hoạt động. Yêu cầu công việc chạy tuần tự. Nếu một hoạt động đang chạy trong IntentService và bạn gửi yêu cầu khác, yêu cầu sẽ đợi cho đến khi hoạt động đầu tiên kết thúc. Một hoạt động chạy trên IntentService không thể bị gián đoạn. Tuy nhiên, trong hầu hết các trường hợp
IntentService là cách ưa thích cho các hoạt động nền đơn giản
**
Thư viện Volley
Có một thư viện gọi là thư viện bóng chuyền để phát triển các ứng dụng mạng Android
Mã nguồn có sẵn cho công chúng trong GitHub.
Tài liệu chính thức của Android về Thực tiễn tốt nhất cho các công việc Nền : giúp hiểu rõ hơn về dịch vụ mục đích, luồng, xử lý, dịch vụ. và cũng thực hiện các hoạt động mạng
IntentService is used for short tasks (etc) and a service is for long ones
bạn đọc những thứ đó ở đâu ?