在推送通知的上下文中,“后台应用程序”是啥意思?
Posted
技术标签:
【中文标题】在推送通知的上下文中,“后台应用程序”是啥意思?【英文标题】:What does' App in the Background' mean in the context of push notifications?在推送通知的上下文中,“后台应用程序”是什么意思? 【发布时间】:2021-11-07 09:01:19 【问题描述】:我正在对我的 Firebase 推送通知传递问题进行故障排除,并且不断有人提到“如果应用在后台......”
一个这样的例子就是这个 SO question How to handle notification when app in background in Firebase
后台应用是什么意思?。 是应用关闭/杀掉的时候吗??
我注意到还有一个后台服务的概念,如果我的应用程序甚至有后台服务,我会感到困惑吗?我不知道也许某些库会激活它。
在推送通知中,我主要关心的是如何在应用程序关闭时发送推送通知。用户总是有关闭的习惯:
滑动关闭所有打开的应用 重启设备(夜间电池没电时的典型情况)【问题讨论】:
【参考方案1】:在任何智能手机中,您都可以同时运行多个应用程序。当您有一个应用程序正在运行,但它不是屏幕上的焦点时,它被认为是在后台运行。
至于服务有 3 种类型(引用自 android 开发者文档):
前景
前台服务执行一些用户可以注意到的操作。例如,音频应用程序将使用前台服务来播放音轨。前台服务必须显示通知。即使用户没有与应用交互,前台服务也会继续运行。
背景
后台服务执行用户不直接注意到的操作。例如,如果应用使用服务来压缩其存储空间,那通常是后台服务。
无论如何,从 android 8 (api 26) 开始,后台服务现在有一定的限制,建议通过 WorkManager 使用 long-running-workers
绑定
绑定服务提供了一个客户端-服务器接口,允许组件与服务交互、发送请求、接收结果,甚至通过进程间通信 (IPC) 跨进程执行此操作。绑定服务仅在另一个应用程序组件绑定到它时运行。多个组件可以一次绑定到服务,但当所有组件解除绑定时,服务将被销毁。
至于您的应用程序是否有服务,如果您没有在应用程序清单中包含/定义一项服务,那么据我所知,您的应用程序默认没有服务。
您可以通过link了解更多关于服务的信息
我对 firebase 了解不多,我只是想帮助并澄清您的一些问题。
【讨论】:
谢谢 Omar,所以当应用程序被滑动关闭时,它不会被视为背景? 是的,我想是的,只有当你可以使用主页按钮切换回它时,它才会在后台运行。 但是您仍然可以让服务或工作人员在用户知道的情况下在后台运行(使用状态栏通知将服务标记为前台服务,这将使其比后台服务寿命更长)或者用户不知道在系统施加的某些限制下执行必要/必要的工作,例如如果系统内存不足,它可能会完全终止您的服务并稍后在有内存时运行它。 @user1034912 还关于重启设备(通常在晚上电池没电时),您可以通过 BOOT_COMPLETED 信号启动服务(当您的设备转动时广播一次关闭/重启后),你需要分配一个广播接收器来等待这个信号,当广播接收器接收到它时,你启动一个前台服务来使用数据库做任何你想做的事情。 你可以在这里阅读广播接收器 - developer.android.com/guide/components/…以上是关于在推送通知的上下文中,“后台应用程序”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章