gpt4 book ai didi

java - 如何正常或使用 EventBus 将数据从 Activity 传递到 Service?

转载 作者:行者123 更新时间:2023-12-02 12:31:05 26 4
gpt4 key购买 nike

我需要将字符串传递给在后台运行的服务,该服务会发出通知。我看了很多教程但不知道怎么做。

我尝试过使用 GreenRobot EventBus 和 Otto Square EventBus

尝试过,但没有成功:

这是我想要传递字符串的 Activity (代码相关)

在此,我使用 Otto EventBus

    @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {

mButtonsetOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

BusStation.getBus().post(new Mensaje("Hello world"));

}
});

模型类://==========================================

     public class BusStation {
private static Bus bus = new Bus();

public static Bus getBus() {
return bus;
}
}

数据传递:

 public class Mensaje {
private String msg;

public Mensaje(String msg) {
this.msg = msg;
}

public String getMsg() {
return msg;
}
}

//==========================================后台服务:

      public class FirebaseBackgroundService extends Service {






@Override
public IBinder onBind(Intent intent) {
return null;
}

@Override
public void onCreate() {
super.onCreate();

BusStation.getBus().register(this);
}
}

@Override
public void onDestroy() {
super.onDestroy();
BusStation.getBus().unregister(this);
}



@com.squareup.otto.Subscribe
public void receiveMessage(Mensaje mensaje){
Toast.makeText(getApplicationContext(), mensaje.getMsg(), Toast.LENGTH_LONG).show();
}
}

但是我在Toast中没有得到任何东西,我也尝试过使用Log.d。

最佳答案

您可以创建绑定(bind)服务并直接调用服务方法。没有事件总线库。您可以通过以下方式执行此操作: https://developer.android.com/guide/components/bound-services.html#Binder

关于java - 如何正常或使用 EventBus 将数据从 Activity 传递到 Service?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45290927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com