我在一次采访中被问到这个问题。我不确定这是否是问这个问题的正确论坛,因为它不涉及任何代码,而是对 android 概念的理解。
问题是“当一切都可以通过 Android 中的后台线程完成时,为什么我们还需要服务?”
Service运行在主线程中,为什么我们需要一些在主线程中运行但在后台运行的东西呢?
像音乐播放这样的例子也可以在后台线程中完成,那么为什么我们需要服务呢?
请让我知道是否应该在另一个论坛上询问这个问题。
Service:服务就像活动。但它不需要 UI 来使用。而当从 Activity 创建线程时,线程将运行直到 Activity 存活。因此,如果您在线程中播放音乐,它就会运行。但当活动结束时它会崩溃,而当您实现从服务播放音乐时,它将运行服务的整个生命周期。
看我的回答绑定服务 https://stackoverflow.com/questions/41540312/how-to-make-sure-service-is-not-killed/41540930#41540930在服务和活动之间进行通信。当您的音乐播放器运行时,您必须在通知面板上保留通知。
UPDATE
当您使用后台线程播放音乐时,即使应用程序关闭,音乐也会播放,您的后台线程将成为孤儿院线程。您无法控制音乐播放器的状态。而当您使用服务时,音乐将会播放,并且当应用程序退出时它不会成为孤儿院服务。当您重新创建应用程序时,您可以与音乐播放器通信,而后台线程则不能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)