2012-04-20 30 views
18

Tôi đang sử dụng IntentService để tải hình ảnh lên máy chủ. Vấn đề của tôi là tôi không biết làm thế nào/khi nào dừng dịch vụ. Khi tôi gọi stopelf() trong onHandleIntent (Intent ..) tất cả Intents đang đợi trong hàng đợi IntentService sẽ bị loại bỏ. Nhưng tôi không muốn ngừng dịch vụ từ một hoạt động vì tôi muốn hoàn thành quá trình tải lên ngay cả khi ứng dụng của tôi không chạy.Cách thích hợp để dừng IntentService

Trả lời

43

Vấn đề của tôi là tôi không biết làm thế nào/khi nào thì dừng dịch vụ.

IntentService tự động dừng bản thân khi onHandleIntent() kết thúc, nếu không các lệnh đã được gửi đến nó trong khi onHandleIntent() được chạy. Do đó, bạn không tự dừng một mình IntentService.

Khi tôi gọi dừng() trong onHandleIntent (Intent ..) tất cả các Intents đang đợi trong hàng đợi IntentService sẽ bị xóa.

Đó là lý do tại sao bạn không làm điều đó.

Nhưng tôi không muốn ngừng dịch vụ từ hoạt động vì tôi muốn hoàn tất quá trình tải lên ngay cả khi ứng dụng của tôi không chạy.

Sau đó, bạn để tự động dừng IntentService.

+0

Cảm ơn bạn, tôi đã không nhận thức được thực tế là IntentService dừng lại khi nó được thực hiện .:] – malinjir

+2

Một góc lởm chởm hơn trong SDK Android ... thở dài. – markshiz

+0

Tôi có vấn đề này ở đây nghĩa vụ phải là 25 giây đến 1 phút nhiệm vụ không kết thúc vì vậy intentService của tôi không kết thúc - https://stackoverflow.com/questions/39976001/force-stop-a-stuck-intentservice-programmatically – mboy

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