Điều này đòi hỏi bất kỳ ứng dụng của bên thứ ba để có một công dụng-sự cho phép trong bản lược khai của họ để truy cập vào dịch vụ này. Bạn sẽ tìm hiểu thêm về việc tạo ra và sử dụng các điều khoản trong Chương 18, "Nâng cao phát triển Android."
Thực hiện một dịch vụ và kiểm soát hành vi của nó Restart
Override xử lý sự kiện onStartCommand để thực hiện các nhiệm vụ (hoặc bắt đầu các hoạt động đang diễn ra) được đóng gói bằng dịch vụ của bạn. Bạn cũng có thể xác định hành vi của khởi động lại dịch vụ của bạn trong phạm vi xử lý này.
Phương pháp onStartCommand được gọi là bất cứ khi nào dịch vụ được bắt đầu sử dụng startService, vì vậy nó có thể được thực hiện nhiều lần trong cuộc đời của một dịch vụ. Bạn nên đảm bảo rằng các tài khoản dịch vụ của bạn cho việc này.
Việc xử lý onStartCommand đã được giới thiệu trong Android 2.0 (API ở mức 5) và thay thế các sự kiện onStart phản đối. Nó cung cấp các chức năng tương tự như phương pháp dep¬recated, nhưng ngoài ra nó cho phép bạn chỉ định làm thế nào để xử lý khởi động lại nếu dịch vụ được giết bởi hệ thống trước khi một cuộc gọi rõ ràng để stopService hoặc stopSelf.
Dịch vụ được đưa ra về việc áp dụng chính chủ, có nghĩa là bất kỳ chế biến thực hiện trong xử lý onStartCommand sẽ xảy ra trên giao diện chính của đề tài. Các mẫu tiêu chuẩn cho imple¬menting một dịch vụ là tạo ra và chạy một chủ đề mới từ onStartCommand để thực hiện các process¬ing trong nền, và sau đó dừng dịch vụ khi nó được hoàn thành. (Bạn sẽ được hiển thị như thế nào để tạo và quản lý đề nền sau của chương này.)
Bảng liệt kê 9-3 kéo dài mã bộ xương trong Ví dụ 9-1 bằng cách ghi đè các han¬dler onStartCommand. Lưu ý rằng nó sẽ trả về một giá trị kiểm soát như thế nào hệ thống sẽ trả lời nếu dịch vụ được khởi động lại sau khi bị giết bởi thời gian chạy.
Lưu ý rằng mỗi chế độ đòi hỏi bạn phải dừng lại một cách rõ ràng dịch vụ của bạn, thông qua một cuộc gọi đến stopService hoặc stopSelf, khi chế biến bạn có hoàn thành. cả hai phương pháp
đang được dịch, vui lòng đợi..
