Có lý do nào khác mà Intent được chuyển đến onStartCommand(Intent, int, int)
sẽ là NULL bên cạnh hệ thống khởi động lại dịch vụ thông qua cờ chẳng hạn như START_STICKY
?Lý do mà Mục đích đã qua sẽ là NULL trong onStartCommand
Ngoài ra, khi dịch vụ được khởi động lại bởi hệ thống, phương pháp Intent.getAction()
trả về NULL ... đôi khi. Intent không phải là NULL chỉ getAction()
Tôi đã hỏi here quá nhưng chưa nhận được câu trả lời.
CẬP NHẬT: Sau khi trò chuyện với Mark Murphy, ông đề nghị tôi trở START_REDELIVER_INTENT
trong onStartCommand()
gọi lại phục vụ của tôi thay vì START_STICKY
để toàn bộ ý định sẽ được gửi sau khi khởi động lại. Tôi đã không làm điều này ban đầu bởi vì tôi lo ngại rằng nếu dịch vụ đang cố gắng làm điều gì đó, thì ở giữa đó một cái gì đó dịch vụ đã được khởi động lại ... liệu nó có nhận ra rằng nó bắt đầu làm điều gì đó? Tôi đoán đó là logic tôi sẽ cần phải chịu trách nhiệm cho :)
Thay vì chỉnh sửa câu hỏi của bạn với câu trả lời, hãy thêm một câu trả lời và chấp nhận nó vì vậy câu hỏi của bạn sẽ ngừng hiển thị trong tập hợp các câu hỏi Chưa trả lời - nhờ. –
Chỉ cần ghi chú cho người có vấn đề tương tự. Tôi thấy rằng thường khi tôi nhận được lỗi rằng 'intent' là' null' trên 'onStartCommand()', nó được gây ra bởi một số lỗi khác mà có thể nhìn thấy trong LogCat trước này. Tôi không biết tại sao, nhưng đây là những gì tôi quan sát và nó khá dễ dàng để bỏ qua nó. –
@DaleWilson Tôi sẽ nhưng câu hỏi này không thực sự được giải quyết. Cho đến khi tôi nhận được câu trả lời cuối cùng về lý do tại sao Intent là null hoặc cách tránh mục đích rỗng mà không phải sử dụng START_REDELIVER_INTENT (mà sau này tôi đã học được, không phải là những gì tôi cần nhưng vẫn giải quyết được một số vấn đề của mọi người. Tôi không thể chấp nhận câu trả lời. – rf43