我尝试使用 greenrobot 在 Activity 和 fragment 之间传递数据,但我找不到合适的教程来详细说明如何操作。 根据我目前所读的内容,我写了一些类似的东西,但它不起作用。我如何使用绿色机器人将数据传递给尚未初始化的 Activity 或 fragment ?
主要 Activity :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventBus.getDefault().post(new String("We are the champions"));
Intent intent = new Intent("com.test.Activity_Lessons");
startActivity(intent);
}
Activity _类(class):
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Some initializations
EventBus.getDefault().register(this);
//Other Stuff
}
public void onEventMainThread(String s){
Toast.makeText(getActivity(), s, Toast.LENGTH_LONG).show();
}
这里从未调用事件处理程序。我做错了什么?
最佳答案
EventBus有两种发送和注册事件的方法,在activity或fragment还没有初始化的情况下,我们可以使用registerSticky和postSticky来代替register和post。
这是我自己更正的代码:
主要 Activity :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventBus.getDefault().postSticky(new String("We are the champions"));
Intent intent = new Intent("com.test.Activity_Lessons");
startActivity(intent);
}
Activity _类(class):
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Some initializations
EventBus.getDefault().registerSticky(this);
//Other Stuff
}
public void onEventMainThread(String s){
Toast.makeText(getActivity(), s, Toast.LENGTH_LONG).show();
}
关于android - 如何使用greenrobot将数据传递给还没有初始化的activity或fragment?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20838726/