【问题标题】:What is the difference between Broadcast Receiver and service?广播接收器和服务有什么区别?
【发布时间】:2025-12-18 14:20:10
【问题描述】:

我为广播接收器和服务编写了程序,但是我在清单文件中感到困惑,有一些注册服务和接收器的基础工作,有人能给我明确的想法吗?提前致谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    服务

    • 当你想在后台做某事时使用它,任何长时间运行的进程都可以使用后台服务来完成。

    • 即使应用程序关闭,它也将始终在后台运行

    • 例如,您想在应用程序关闭时播放音乐。在这种情况下,服务将在背景音乐中运行。

    广播接收器

    • 当你想在某个事件中触发一些东西或代码时使用它。例如,事件可以在设备启动上。

    • 通常系统会发送一些信息,如果您愿意,您的应用可以通过注册接收这些信息。当事情发生时,您可以使用 onReceive 方法做您想做的事情。示例是当新短信到达或启动完成时系统将发送 BroadcastReceiver

    • 例如,如果您想在设备启动时执行某些操作,日期和时间更改等。

    【讨论】:

      【解决方案2】:

      服务用于在没有用户交互的情况下执行长时间运行的操作或为其他应用程序提供功能。

      A Service needs to be declared in the AndroidManifest.xml via  
      a <service android:name="yourclasss"> </service> and the implementing class  
      must extend the Service class or one of its subclasses.  
      
      To start Services automatically after the Android system starts you can register  
      a BroadcastReceiver to the Android android.intent.action.BOOT_COMPLETED system  
      event. This requires the android.permission.RECEIVE_BOOT_COMPLETED permission.
      

      更多详情,请查看http://www.vogella.com/articles/AndroidServices/article.html#pre_broadcastreceiver

      【讨论】:

        【解决方案3】:

        广播接收器是一个允许注册系统或应用程序事件的 Android 组件。一旦该事件发生,Android 将通知所有注册的事件接收者。

        服务是一个应用程序组件,代表应用程序希望在不与用户交互的情况下执行更长时间运行的操作,或提供功能供其他应用程序使用。

        在这里解释会很长 我有 2 个来自 vogella 的很棒的教程链接

        Broadcast Receiver

        Service

        如果您在阅读教程后还有其他问题,请随时在评论中问我:)

        【讨论】: