2012-04-13 91 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