我在一次采访中被问到这个问题。我不确定这是不是问这个问题的合适论坛,因为它不涉及任何代码,而是对 android 概念的理解。
问题是“当一切都可以由 Android 中的后台线程完成时,为什么我们需要服务?” 服务在主线程中运行,为什么我们需要在主线程中运行但在后台运行的东西? 音乐播放等示例也可以在后台线程中完成,那么我们为什么需要服务。
请让我知道是否应该在另一个论坛中提出这个问题。
最佳答案
服务: 服务就像 Activity 。但它不需要 UI 即可使用。而当线程从 Activity 中创建时,线程将运行直到 Activity 结束。所以,如果你在线程中播放音乐,它就会运行。但是当 Activity 结束时它会崩溃,而当您实现从服务播放音乐时它将运行整个服务的生命周期。
看我的回答boundservice在服务和 Activity 之间进行通信。当您的音乐播放器运行时,您必须在通知面板上保持通知。
更新
当您使用后台线程播放音乐时,即使应用程序关闭,音乐也会播放您的后台线程将成为孤儿线程。您无法控制音乐播放器的状态。而当您使用服务时,音乐会播放,并且当应用程序退出时它不会变成孤儿院服务。当您重新创建应用程序时,您可以与音乐播放器通信,而后台线程则不能。
关于android - 为什么我们需要android中的服务?音乐播放也可以通过后台线程完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43117812/