2012-04-13 40 views
4

我想在Android中使用番石榴事件总线,但它我的订阅事件似乎没有工作...我做错了什么?番石榴事件总线不工作

这是我的活动:

package test.eventbus; 

import com.google.common.eventbus.EventBus; 
import com.google.common.eventbus.Subscribe; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 

public class EventBusTestActivity extends Activity { 

    EventBus eventbus = new EventBus(); 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     eventbus.register(this); 
     eventbus.post("message"); 
    } 

    @Subscribe 
    void testEvent(Object bla) { 
     Log.d("EventBus Event", bla.toString()); 
    } 

} 

回答

8

订阅功能需要公开工作。哎呀

@Subscribe 
public void testEvent(Object bla) { 
    Log.d("EventBus Event", bla.toString()); 
} 
+1

在Android中使用此操作时要小心,因为事件是在发布它的线程上传递的,并且比这更像UI线程。 – 2012-07-15 18:28:31

+1

听起来像预期的行为... – Kurru 2012-07-17 00:16:28

+2

有一个AsyncEventBus的方式... – 2012-07-23 19:17:56