Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 应用程序关闭时无法在SQLite或SharedReferences中存储数据_Android_Sqlite_Service_Sharedpreferences_Firebase Cloud Messaging - Fatal编程技术网

Android 应用程序关闭时无法在SQLite或SharedReferences中存储数据

Android 应用程序关闭时无法在SQLite或SharedReferences中存储数据,android,sqlite,service,sharedpreferences,firebase-cloud-messaging,Android,Sqlite,Service,Sharedpreferences,Firebase Cloud Messaging,我已经试过了上面提供的大多数解决方案。但是,无法解决此问题。 问题是:当FCM通知到达时,我正在启动将通知内容存储到sqlite的服务。虽然它在应用程序打开时工作,但在应用程序关闭时不工作 这是我用来存储在sqlite中的服务类。--> 任何帮助都将不胜感激。 谢谢!:) 来自FCM 要接收消息,请使用扩展FirebaseMessagingService的服务。您的服务应该覆盖onMessageReceived和onDeletedMessages回调。它应在收到后10秒内处理任何信息。之后,An

我已经试过了上面提供的大多数解决方案。但是,无法解决此问题。 问题是:当FCM通知到达时,我正在启动将通知内容存储到sqlite的服务。虽然它在应用程序打开时工作,但在应用程序关闭时不工作

这是我用来存储在sqlite中的服务类。-->

任何帮助都将不胜感激。 谢谢!:)

来自FCM

要接收消息,请使用扩展
FirebaseMessagingService
的服务。您的服务应该覆盖
onMessageReceived
onDeletedMessages
回调。它应在收到后10秒内处理任何信息。之后,Android不保证执行,并且可以随时终止您的进程。如果您的应用程序需要更多时间来处理消息,请使用Firebase作业调度器

onMessageReceived
适用于大多数邮件类型,但以下例外情况除外:

通知
当您的
应用程序
处于
背景
。在这种情况下,
通知将被发送到
设备的
系统托盘
。用户点击
通知
打开应用程序 默认情况下启动程序

消息
同时包含
通知
数据
有效负载
背景
前景
。在这种情况下,
通知是
传送到设备的
系统托盘
,并且
数据
有效负载 在您的启动器活动的
意图的
附加部分中交付

总之:

App state    | Notification       | Data               | Both
----------------------------------------------------------------------------
Foreground   | onMessageReceived  | onMessageReceived  | onMessageReceived
----------------------------------------------------------------------------
Background   | System tray        | onMessageReceived  | Notification: system tray
                                                         Data: in extras of the intent.
解决方案:

App state    | Notification       | Data               | Both
----------------------------------------------------------------------------
Foreground   | onMessageReceived  | onMessageReceived  | onMessageReceived
----------------------------------------------------------------------------
Background   | System tray        | onMessageReceived  | Notification: system tray
                                                         Data: in extras of the intent.
根据上述指南,客户端应用程序似乎在
onMessageReceived()
前台
后台
状态中接收到一条
数据
消息。因此,如果您想要
要同时处理
前台
后台
状态的消息,则应发送带有
数据
有效负载的推送消息

下面是一个关于FCM的好教程(
通知
数据有效负载
):

希望这对FCM有所帮助

要接收消息,请使用扩展
FirebaseMessagingService
的服务。您的服务应该覆盖
onMessageReceived
onDeletedMessages
回调。它应在收到后10秒内处理任何信息。之后,Android不保证执行,并且可以随时终止您的进程。如果您的应用程序需要更多时间来处理消息,请使用Firebase作业调度器

onMessageReceived
适用于大多数邮件类型,但以下例外情况除外:

通知
当您的
应用程序
处于
背景
。在这种情况下,
通知将被发送到
设备的
系统托盘
。用户点击
通知
打开应用程序 默认情况下启动程序

消息
同时包含
通知
数据
有效负载
背景
前景
。在这种情况下,
通知是
传送到设备的
系统托盘
,并且
数据
有效负载 在您的启动器活动的
意图的
附加部分中交付

总之:

App state    | Notification       | Data               | Both
----------------------------------------------------------------------------
Foreground   | onMessageReceived  | onMessageReceived  | onMessageReceived
----------------------------------------------------------------------------
Background   | System tray        | onMessageReceived  | Notification: system tray
                                                         Data: in extras of the intent.
解决方案:

App state    | Notification       | Data               | Both
----------------------------------------------------------------------------
Foreground   | onMessageReceived  | onMessageReceived  | onMessageReceived
----------------------------------------------------------------------------
Background   | System tray        | onMessageReceived  | Notification: system tray
                                                         Data: in extras of the intent.
根据上述指南,客户端应用程序似乎在
onMessageReceived()
前台
后台
状态中接收到一条
数据
消息。因此,如果您想要
要同时处理
前台
后台
状态的消息,则应发送带有
数据
有效负载的推送消息

下面是一个关于FCM的好教程(
通知
数据有效负载
):


希望这将有助于~

您发送数据或通知的类型检查这是通知。并且在接收通知方面没有问题。:)FCM有两种类型的通知数据和通知,在通知消息的情况下,当应用程序位于后台时,它不会调用onMessageReceived,因此这很重要bro:)如果您需要,请检查此项,然后使用数据消息,该消息将在客户端完全处理,它将在前台和后台调用onMessageReceived在这里说明我知道的更多,你必须在上面搜索@Pavan谢谢你!!是的,这就是问题所在。我在通知中改为“数据”载体,它起作用了:d您发送数据或通知的消息类型是什么?检查这是通知。并且在接收通知方面没有问题。:)FCM有两种类型的通知数据和通知,在通知消息的情况下,当应用程序位于后台时,它不会调用onMessageReceived,因此这很重要bro:)如果您需要,请检查此项,然后使用数据消息,该消息将在客户端完全处理,它将在前台和后台调用onMessageReceived在这里说明我知道的更多,你必须在上面搜索@Pavan谢谢你!!是的,这就是问题所在。我在通知中改成了“数据”载体,效果很好:非常感谢,伙计!它成功了。我改成了信息中的数据,效果很好:D。非常感谢,伙计!它起作用了。我改成了信息中的数据,它就像魅力:D。