这是我第一次使用这个库,但我一直在关注 this通过 Fragments 发送数据的视频教程,但在我的例子中,它只是 Activities..所以我是这样做的
我正在发送数据的 Activity :
public void onClick(View view) {
String passing_data = new Gson().toJson(user);
BusStation.getBus().post(new MessageData(passing_data));
Intent intent = new Intent(activity,UserAdsView.class);
activity.startActivity(intent);
}
BusStation 类:
public class BusStation {
private static Bus bus = new Bus();
public static Bus getBus() {
return bus;
}
}
消息数据类:
public class MessageData {
private String msgData;
public MessageData(String msgData) {
this.msgData = msgData;
}
public String getMsgData() {
return msgData;
}
}
最后是 UserAdsView Activity :
@Override
protected void onResume() {
super.onResume();
BusStation.getBus().register(this);
}
@Override
protected void onPause() {
super.onPause();
BusStation.getBus().unregister(this);
}
@Subscribe
public void recievedData(MessageData messageData){
target = messageData.getMsgData();
Toast.makeText(getApplicationContext(), target, Toast.LENGTH_SHORT).show();
}
如视频中所述,应该触发此方法 recievedData
!
最佳答案
当您当时在第一个 Activity 中发送通知时,UserAdsView Activity
未注册 因此没有事件监听器。
在这一行
BusStation.getBus().post(new MessageData(passing_data));
您正在发送通知,但没有注册接收此通知。即 UserAdsView Activity
尚未开始。
If you need to pass data to activity at launch time, simply send it via Intent.
关于java - 使用 Otto 将数据从 Activity 传递到 Activity 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41972264/