Có lý do nào khác khiến Intent được chuyển tới onStartCommand(Intent, int, int)
sẽ là NULL ngoài việc hệ thống khởi động lại dịch vụ thông qua một cờ chẳng hạn START_STICKY
?
Ngoài ra, khi dịch vụ được khởi động lại bởi hệ thống, Intent.getAction()
phương thức trả về NULL ... đôi khi. Ý định không chỉ là NULLgetAction()
Tôi cũng hỏi ở đây nhưng vẫn chưa nhận được câu trả lời.
CẬP NHẬT : Sau khi trò chuyện với Mark Murphy, anh ấy gợi ý rằng tôi nên quay lại START_REDELIVER_INTENT
trong cuộc onStartCommand()
gọi lại trong dịch vụ của mình thay vì START_STICKY
để toàn bộ ý định được gửi sau khi khởi động lại.
Tôi đã không làm điều này ban đầu vì tôi lo ngại rằng nếu dịch vụ đang cố gắng thực hiện điều gì đó, sau đó dịch vụ được khởi động lại giữa chừng ... nó có nhận ra rằng nó đã bắt đầu làm điều gì đó không? Tôi đoán đó là logic mà tôi sẽ cần phải chịu trách nhiệm :)
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 được và khá dễ dàng để bỏ qua nó.
NullPointerException
ở đâu đó trong một trong các Hoạt động. Sau đó là một số lỗi khác. Tuy nhiên, trong cả hai trường hợp vết đống của tôi cho thấy dịch vụ của tôi - được chạy trong khi lỗi này xảy ra - có intent
đó là null
như trong trường hợp của bạn. Tôi đã suy nghĩ khá lâu có gì không ổn, khi tôi quyết định cuộn lên dấu vết ngăn xếp và có vẻ như ở đâu đó trên cùng tôi đã mắc lỗi thực sự. Sau khi giải quyết xong cái này, cái này cũng null
intent
biến mất.