Trong ứng dụng của tôi, tôi đặt dịch vụ của tôi ở mặt trước để ngăn ngừa nó khỏi bị giết bằng cách sử dụng:Việc cập nhật Thông báo có xóa trạng thái tiền cảnh của Dịch vụ không?
startForeground(NOTIFY_ID, notification);
này cũng hiển thị thông báo cho người sử dụng (đó là rất tốt). Vấn đề là sau này tôi cần cập nhật thông báo. Vì vậy, tôi sử dụng mã:
notification.setLatestEventInfo(getApplicationContext(), someString, someOtherString, contentIntent);
mNotificationManager.notify(NOTIFY_ID, notification);
Câu hỏi sau là: sẽ thực hiện thao tác này từ trạng thái tiền cảnh đặc biệt?
Trong this answer, CommonsWare cho biết rằng hành vi này là có thể, nhưng anh ấy không chắc chắn. Vì vậy, không ai biết câu trả lời thực tế?
Lưu ý: Tôi biết rằng một cách đơn giản để thoát khỏi câu hỏi này là để liên tục gọi startForeground()
mỗi khi tôi muốn cập nhật các thông báo. Tôi đang tìm hiểu xem liệu giải pháp thay thế này cũng sẽ hoạt động hay không.
BTW, mặc dù bạn có thể cập nhật nội dung của một thông báo hiện tại, bạn có thể không làm cho văn bản ticker xuất hiện trong thanh trạng thái nhiều hơn một lần trong một thông báo được đưa ra, ngay cả khi bạn thay đổi nó - ít nhất là không sử dụng Notification.FLAG_ONGOING_EVENT. Để hiển thị văn bản mã mới cho thông báo hiện có, bạn cần hủy thông báo và sau đó khởi động lại. –