08-16 21:11:29.053 10913-10913 / com.oyyx.servicetest D / EventBus:没有为事件类com.oyyx.servicetest.TestAction注册的订阅者08-16 21:11:29.053 10913-10913 / com.oyyx。 servicetest D / EventBus:没有为事件类org.greenrobot.eventbus.NoSubscriberEvent注册的订阅者

看起来像eventbus早于创建服务来找到订阅方法


    @OnClick(R.id.start_service)
public void startService() {
    Intent intent = new Intent(this, MyService.class);
    TestAction testAction = new TestAction();
    testAction.setString("startService");
    startService(intent);
    BusProvider.getInstance().post(testAction);
}

//启动服务并发布数据(活动)

    @Subscribe
public void testAction(TestAction testAction) {
    Log.e(TAG, testAction.getString());
}

//尝试接收数据(服务)

08-16 09:58:45.987 1507-1507 / com.oyyx.servicetest E / MY服务:onCreate已执行08-16 09:58:45.987 1507-1507 / com.oyyx.servicetest E / MY SERVICE:onStartCommand已执行

首先单击启动服务按钮日志和数据无法传递。

08-16 10:02:25.297 1507-1507 / com.oyyx.servicetest E / MY服务: startService 08-16 10:02:25.297 1507-1507 / com.oyyx.servicetest E / MY服务:onStartCommand已执行

单击启动服务按钮两次,然后输入数据。

#1楼 票数:0

您正在使用EventBus库吗? 如果是,请尝试使用粘性事件。

@OnClick(R.id.start_service)
public void startService() {
    Intent intent = new Intent(this, MyService.class);
    TestAction testAction = new TestAction();
    testAction.setString("startService");
    BusProvider.getInstance().postSticky(testAction);
    startService(intent);
}

参考粘性事件

  ask by 刘瑞良 translate from so

未解决问题?本站智能推荐:

1回复

如何使用greenrobot事件总线将活动中的事件发送到服务?

简单的EventBus.getDefault()。post()带来异常而不是主线程。 如何使用greenrobot事件总线将活动中的事件发送到服务? 服务等级 使用greenrobot事件总线进行发送是否可行?
5回复

EventBus:当应用程序在后台时,活动不会收到事件

我正在使用EventBus在Activity和Service之间进行通信。 今天我遇到了问题,不知道为什么。 我有Activity , Fragment和Service 。 所有这些都很好。 在Activity和Fragment我registered它们registered
1回复

Service中的EventBus.post(),如何从Thread.BACKGROUND调用函数

我正在尝试实现一个功能,该功能将在用户关闭应用程序时(清除)进行一些清理。 内部Activity.class MyService.class 但是我得到: EventBus:没有为事件类com.talkie.ashaneen.firebaseapp.other.M
1回复

如何正常地或通过EventBus将数据从活动传递到服务?

我需要将字符串传递给在后台运行的服务,该服务会发出通知。 我看过很多教程,但我不知道该怎么做。 我已经尝试过使用GreenRobot EventBus和Otto Square EventBus 尝试了一下,但是没有用: 这是我要传递字符串的活动(与代码相关) 在此,我正
2回复

活动,服务和通知之间的交流

我有3个组件需要互相交谈: 该通知是从服务启动的,它需要具有带按钮的自定义视图。 单击任何按钮都应向活动和服务发送一些信息。 实现此目的的最佳方法是什么? 我看到的选项: 广播接收器 活动巴士
2回复

服务(事件总线订户)未收到来自活动的帖子

NotificationEvent类(POJO) } MyFirebaseMessagingService(订阅者) 我的活动(海报) 错误 成功登录 日志不成功 我尝试过粘性和非粘性都无济于事。 感谢帮助 更新 我可以确认事件总线是否正常工作,真正的问题是:该服务仅
4回复

EventBus无法开始活动

我正在构建一个Android应用,我想将EventBus从我的Service类发送到我的Activity。 这是我的活动代码: 这是我的BlePowerService类中的代码: 如果我尝试启动我的应用程序,则出现此错误: 我的Activity类的错误ID onSt
2回复

使用EventBus完成基本活动中的活动?

在一个现有项目上,我发现这是一个非常不常见的实现(至少对我而言)。 由于我没有与已经离开的以前的开发人员联系,并且在我以仅从代码库的另一部分复制和粘贴代码为例而忽略此之前,我想向SO社区询问此事。 这是扩展BaseActivity和实现的日常活动: 在BaseActivity.k