当应用程序被用户关闭时,我试图在我的 Android 托盘上显示一条数据消息,即当用户将应用程序拖到最近应用程序列表的一侧时。虽然,数据消息只是像这样被接收:
- 应用程序已关闭。已发送数据消息。
- 关闭应用程序时未收到消息。
- 应用程序已打开。
- 4~5 分钟后收到数据消息并显示在 Android 托盘中。
为了实现这一点,我正在使用react-native-firebase库,遵循其docs。
import firebase from 'react-native-firebase';
import type { RemoteMessage } from 'react-native-firebase';
export default async (message: RemoteMessage) => {
const notifPromise = new Promise((resolve, reject) => {
let notification = new firebase.notifications.Notification();
notification.android.setPriority(firebase.notifications.Android.Priority.High);
notification.android.setChannelId("test-channel");
resolve(firebase.notifications().displayNotification(notification));
});
console.log("MESSAGE IN BACKGROUND OR APP CLOSED");
return notifPromise.resolve();
}
上面的代码在后台运行良好,我的意思是当应用程序只是“最小化”到辅助计划时。
AndroidManifest.xml、HeadlessTask 和 MainApllication.java 理论上是符合文档的。我只是在 Android 托盘中显示空白 UI 进行测试。
邮递员发送的消息:
{
"to": "erVxmCT6rgA:APA91bGn6q9...",
"data": {
"custom1": "custom1",
"custom2": "custom2"
}
}
问题:一旦它在后台运行会出现什么问题?为什么会发生这种行为?