Tôi đang sử dụng Nhắn tin qua đám mây của Firebase để gửi tin nhắn dữ liệu đến ứng dụng tôi đang phát triển. Theo Tài liệu FCM, khi ứng dụng ở tiền cảnh:Nhắn tin qua đám mây của Firebase - Android: thông báo nhấp chuột khi ứng dụng bị đóng không hoạt động
Ứng dụng khách nhận được thông báo dữ liệu trong onMessageReceived() và có thể xử lý các cặp khóa-giá trị tương ứng.
và hoạt động tốt. Khi ứng dụng ở chế độ nền, hành vi khác nhau:
tải trọng dữ liệu có thể được truy lục trong Mục đích được sử dụng để khởi chạy hoạt động của bạn.
và dường như không hoạt động tốt. Tôi đang sử dụng thông số "click_action" trong JSON thông báo, nơi tôi chỉ định tên của bộ lọc ý định được sử dụng trong Tệp kê khai Android bên trong thẻ "hoạt động" mà tôi muốn mở. Ví dụ, thông báo của tôi có thể là:
{
"to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...",
"notification" : {
"body" : "This is a test",
"title" : "Test",
"click_action" : "com.test.click"
},
"data" : {
"key" : "data"
}
}
Và biểu hiện của tôi có này ý định lọc, trong "MainActivity":
<intent-filter>
<action android:name="com.test.click" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Khi ứng dụng của tôi là ở chế độ nền và tôi khởi động thông báo, tất cả mọi thứ dường như hoạt động tốt: tôi nhấp vào thông báo và hoạt động chính xác được hiển thị và các khóa dữ liệu nằm trong "extras" của mục đích nhận được. Sự cố xảy ra khi ứng dụng của tôi bị đóng: khi tôi nhấn vào thông báo, ứng dụng bắt đầu chính xác và mở hoạt động bằng bộ lọc "com.test.click" nhưng nếu tôi cố gắng gửi thông báo khác, khi tôi nhấn trên nó không có gì xảy ra và các thông báo nền không hoạt động nữa cho đến khi tôi khởi động lại ứng dụng.
Để rõ ràng hơn: thông báo hoạt động tốt trong khi ứng dụng của tôi ở chế độ nền trước hoặc trong nền. Nếu ứng dụng của tôi bị đóng, thông báo đầu tiên sẽ được xử lý chính xác nhưng mọi thông báo nền khác sẽ không hoạt động nữa cho đến khi tôi khởi động lại ứng dụng: nếu tôi nhấn vào thông báo, ứng dụng của tôi sẽ hiển thị hoạt động cuối cùng được xem, như thể tôi đã chọn ứng dụng từ menu "Ứng dụng gần đây". Nếu tôi đóng và khởi động lại ứng dụng, các thông báo sẽ hoạt động bình thường.
Đây có phải là lỗi của thông báo dữ liệu trong Android hoặc vấn đề FCM không? Có cách nào để giải quyết vấn đề này không?
Tôi đang sử dụng API 5 của Nexus 5 để thử nghiệm.
Hi do u có giải pháp cho việc này? – Bahu
@Bahu Thật không may, tôi đã tìm thấy một giải pháp chỉ sử dụng tin nhắn dữ liệu, sử dụng thông báo khay hệ thống mà lỗi vẫn tồn tại. Tôi nghĩ đó là lỗi FCM. Bạn đã thử nghiệm cùng một lỗi tôi mô tả trong câu hỏi của tôi? –
Có bro, tôi đang cố gắng giải quyết vấn đề này. Nếu bạn có bất kỳ đề xuất nào khác hơn là "thông báo dữ liệu, sử dụng thông báo khay hệ thống", hãy cho tôi biết – Bahu