后台服务和前台服务有什么区别?

时间:2010-08-21 20:01:49

标签: android

我目前正在编写我的第一个Android应用程序,并且我一直在运行对后台和前台服务的引用。由于我打算在我的应用程序中使用服务,我希望得到两者之间的澄清以及如何使用它们。

4 个答案:

答案 0 :(得分:44)

也许这会回答你的问题:

  

已启动的服务可以使用startForeground API来放置服务   处于前景状态,系统认为它是某种东西   用户积极地意识到并因此不是杀人的候选人   当内存不足时。默认情况下,服务是后台,意思是   如果系统需要杀死它们以回收更多内存(例如   在Web浏览器中显示一个大页面),它们可以在没有的情况下被杀死   伤害很大。

可以找到更多信息here

答案 1 :(得分:30)

前景:该过程依赖于onPause()和onResume()......即您播放音乐播放器并按暂停和播放

背景:在没有用户交互的情况下运行的过程,即接收消息,来电,接收邮件或设置警报。这里使用的方法是onStart()和onStop()。

例如,请在手机上查看。在早上6:30发出警报。当系统时钟到达早上6:30时,它会发射。要取消闹钟服务,只需转到菜单 - >设置 - >应用程序 - >正在运行服务 - >点击停止服务。即使您的系统到达不会触发的时间,它也会停止警报服务。

答案 2 :(得分:0)

Foreground Service用于当用户与应用程序进行交互并且Service做对用户可见的操作时。 Background Service用于什至是用户关闭应用程序(从最近的应用程序中丢弃),并且Service正在进行用户不可见的操作(例如从服务器下载数据,从ContentProvider加载数据等)时。 Foreground Service不太可能被内存不足的系统杀死。

答案 3 :(得分:0)

@亚历克斯 每当用户根据应用收到通知时,用户就会了解前台服务。