được thảo luận chi tiết hơn sau này trong chương này.Trước khi Android SDK 2.0 (API cấp độ 5), các lớp dịch vụ kích hoạt trình xử lý sự kiện onStart để cho phép bạn thực hiện hành động khi dịch vụ bắt đầu. Triển khai thực hiện xử lý onStart bây giờ là tương đương với trọng onStartCommand và quay trở về start_sticky.Chế độ khởi động lại bạn chỉ định trong onStartCommand của bạn trở về giá trị sẽ ảnh hưởng đến các tham số val¬ues được thông qua vào nó trên các cuộc gọi tiếp theo. Ban đầu, mục đích sẽ là các tham số bạn thông qua vào để startService để bắt đầu dịch vụ của bạn. Sau khi khởi động lại hệ thống dựa trên nó sẽ là hoặc null, trong trường hợp chế độ start_sticky, hoặc mục đích ban đầu nếu chế độ thiết lập để start_redeliver_intent.Các tham số lá cờ có thể được sử dụng để khám phá làm thế nào các dịch vụ đã được bắt đầu. Trong cụ thể, bạn deter¬mine nếu một trong các trường hợp sau đây là đúng:► start_flag_redelivery — chỉ ra rằng các tham số ý định là một redelivery gây ra bởi hệ thống chạy của thời gian đã chấm dứt dịch vụ trước khi nó đã được rõ ràng dừng lại bởi một cuộc gọi đến stopSelf.► start_flag_retry — chỉ ra rằng các dịch vụ đã được khởi động lại sau khi một termi¬nation bất thường. Nó được thông qua trong khi dịch vụ đã được thiết lập để start_sticky.Bắt đầu và dừng dịch vụĐể bắt đầu một dịch vụ, xin gọi startService. Giống như các hoạt động, bạn có thể sử dụng hoặc là một hành động để implic¬itly bắt đầu một dịch vụ với người nhận mục đích phù hợp đã đăng ký, hoặc bạn có thể chỉ định một cách rõ ràng các dịch vụ bằng cách sử dụng các lớp học. Nếu các dịch vụ yêu cầu cho phép ứng dụng của bạn không có, các cuộc gọi đến startService sẽ ném một SecurityException.Trong cả hai trường hợp, bạn có thể vượt qua các giá trị trong các dịch vụ onStart xử lý bằng cách thêm các tính năng bổ sung để mục đích, như được hiển thị trong liệt kê 9-4, đó chứng tỏ cả hai kỹ thuật có sẵn để bắt đầu một dịch vụ.
đang được dịch, vui lòng đợi..
