当前位置: 首页 > 知识库问答 >
问题:

服务可以接收自己的广播吗?

段哲圣
2023-03-14

如果我有一个名为MyService的服务,它看起来像这样,那么该服务的BroadcastReceiver会从“SendData”方法中重新获得它自己的广播吗??

public class PlayerService extends Service {
    private FFmpegMediaPlayer mp;
    private BroadcastReceiver receiver;

    @Override
    public void onCreate() {
        super.onCreate();
        ...
        registerReceiver(receiver, new IntentFilter(Constants.SERVICE));
        ...
    }
    ...
    public void sendData() {
        Intent intent = new Intent(Constants.SERVICE);
        sendBroadcast(intent);
    }
}

共有1个答案

壤驷文华
2023-03-14

正如Adil Soomro和rupesh jain提到的,这显然不会是一个问题,因为该服务无法接收自己的广播。

实际上,在对它进行实验之后,我发现如果broadcastreceiver具有与广播意图相同的intentfilter服务可以接收自己的广播。

 类似资料:
  • 总线可以携带任何类型为RemoteApplicationEvent的事件,但默认传输是JSON,并且解串器需要知道哪些类型将提前使用。要注册一个新类型,它需要在org.springframework.cloud.bus.event的子包中。 要自定义事件名称,您可以在自定义类上使用@JsonTypeName,或者依赖默认策略来使用类的简单名称。请注意,生产者和消费者都需要访问类定义。 在自定义包中

  • 每当它收到消息时,它都会在后台运行,即使应用程序没有运行,它也应该从后台启动活动

  • 问题内容: 有人可以解释和之间的确切区别吗? 在什么情况下我们必须使用每个Receiver类? 问题答案: 和之间只有一个区别。 当您收到内部广播方法时, 假设, BroadcastReceiver : 它 不保证 该 CPU将保持清醒 ,如果你启动一些长时间运行的进程。CPU可能会立即回到睡眠状态。 WakefulBroadcastReceiver : 这是 保证 该 CPU将保持清醒 ,直到你

  • 我有一个broadcastreciever开始了一个长的操作(上传过程)。在一个从活动类开始的服务的代码中,我需要在一个新线程中注册这个接收器。 我已经检查了这篇文章Android的广播接收器是在一个新的线程中启动的吗?但是我需要一个关于使用Context.RegisterReceiver的更具体的示例(BroadcastReceiver receiver、IntentFilter filter、

  • 我是android新手。我的项目有一个活动和一个服务。我的服务有一个广播接收器,而活动有一个广播发送器,它在PeriodSender方法中。动态地,当我注册接收者时,在服务开始时它不会调用,但是如果我在几分钟后发送了一些东西,它就会调用。但是我想在清单中注册它,我已经在清单中包含了接收方的详细信息,但是接收方没有调用。我的接收方类名是MyReceiver21,意图操作是My_ACTION1。实际上

  • 本文向大家介绍Android BroadcastReceiver接收收到短信的广播,包括了Android BroadcastReceiver接收收到短信的广播的使用技巧和注意事项,需要的朋友参考一下 一、知识介绍   1、broadcastReceiver是广播接受者,四大组件之一。   2、Android中内置了很多系统级别的广播,可以在应用程序中得到各种系统的状态信息。   3、使用场景: