Android - 前台和后台服务有啥区别?

Posted

技术标签:

【中文标题】Android - 前台和后台服务有啥区别?【英文标题】:Android - What is the difference between a foreground and background service?Android - 前台和后台服务有什么区别? 【发布时间】:2015-08-17 21:28:25 【问题描述】:

来自 android.com,它说前台服务是用户知道的,如果需要内存,前台服务不太可能被杀死。它说如果需要内存,后台服务可能会被终止。这是唯一的区别还是一项服务可以提供额外的功能?

我的主要问题是,如果后台服务可能会被杀死,为什么还要使用它。谁能提供一个应用程序使用后台服务的示例?

【问题讨论】:

【参考方案1】:

这是唯一的区别还是一项服务可以提供额外的功能?

要拥有前台服务,您必须在状态栏中显示Notification。理想情况下,Notification 让用户能够控制应用程序的操作,例如停止前台服务正在执行的任何操作(例如,播放音乐)。

如果后台服务可能会被杀死,为什么还要使用它

除其他原因外,如果您将图标添加到他们的状态栏而没有充分的理由让他们在那里,用户会变得非常暴躁。

一般来说,您都不使用类型的服务unless it is actively delivering value to the user。许多后台服务都是短暂的,做一些特定的工作(例如,检查邮件服务器是否有新消息)然后就消失了。没有充分的理由为这项工作提供前台服务,尽管一些开发人员还是会这样做。

谁能提供一个应用程序使用后台服务的示例?

您设备上的大多数应用都使用后台服务。

【讨论】:

很棒的答案,正是我想要的。谢谢 好内容。我喜欢阅读链接。我很自豪我没有使用Service 来达到它的真正目的:) 这是我见过的与该主题相关的最佳答案

以上是关于Android - 前台和后台服务有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

关于android编程中service和activity的区别

工作线程与后台线程android有啥区别?

旧服务 vs 后台服务 vs 前台服务

Docker 容器后台运行和前台运行的区别

在前台服务中的位置,具有后台权限 VS 仅在应用程序中权限 Android Q

Android四大组件——Service后台服务前台服务IntentService跨进程服务无障碍服务系统服务