我目前正在开发一个应用程序,使用mediaplayer类播放steam音频。我会宣布它的主要(玩家)活动是单程的。同样在按钮“back”上,它的作用与按钮home的作用相同。因此,它只是停留在后台播放,如果用户想看到图形用户界面,他只需再次启动应用程序(这不太方便)或点击特殊应用程序的通知。通过菜单提供出口。
但是在这种情况下,使用服务而不是活动有什么好处呢?我不得不说,发展起来肯定会更复杂。恐怕,即使在“后台”时实例化gui也要花费更多的时间。

最佳答案

从Android文档中:
活动
活动表示具有用户界面的单个屏幕。例如,电子邮件应用程序可能有一个显示新电子邮件列表的活动、另一个编写电子邮件的活动和另一个读取电子邮件的活动。
服务
服务是在后台运行以执行长时间运行的操作或为远程进程执行工作的组件。服务不提供用户界面。例如,当用户在不同的应用程序中时,服务可能在后台播放音乐,或者它可能在不阻止用户与活动交互的情况下通过网络获取数据。另一个组件(如活动)可以启动服务并让它运行或绑定到它,以便与之交互。

一旦启动,服务就可以无限期地在后台运行,即使启动它的组件已被销毁。
android操作系统可以在资源耗尽时破坏你的活动,但不会破坏服务。
编辑:您应该使用startForeground()来确保您的Service不会在资源不足的情况下被杀死。从文档中:
使此服务在前台运行,并在此状态下向用户提供要显示的持续通知。默认情况下,服务是后台服务,这意味着如果系统需要终止它们以回收更多内存(例如在web浏览器中显示一个大页面),则可以在不造成太大危害的情况下终止它们。如果终止服务会对用户造成干扰(例如,如果您的服务正在执行背景音乐播放),则可以设置此标志,以便用户会注意到其音乐是否已停止播放。

07-24 09:49
查看更多