0

簡單EventBus.getDefault()。post()帶來異常而不是主線程。如何使用綠色機器人事件總線將活動發送到服務?如何使用綠色機器人事件總線將活動中的事件發送到服務器?

chronometer = (Chronometer)findViewById(R.id.chrono); 
     chronometer.setBase(SystemClock.elapsedRealtime()); 
     chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { 
      @Override 
      public void onChronometerTick(Chronometer arg0) { 
       long countUp = (SystemClock.elapsedRealtime() - arg0.getBase())/1000; 
       String asText = (countUp/60) + ":" + (countUp % 60); 
       Log.e("asText", "asText" + asText); 
       ChronometerEvents event=new ChronometerEvents(); 
       event.setTime(asText); 
       bus.post(event); 
      } 
     }); 



public class ChronometerEvents { 
    private String time; 


    public ChronometerEvents() { 

    } 

    public String getTime() { 
     return time; 
    } 

    public void setTime(String time) { 
     this.time = time; 
    } 
} 



public void onEvent(ChronometerEvents freq) { 
     Log.e("Chronometer", "Chronometer" + freq.getTime()); 


    } 

服務類

public class NewLocationUpdateService extends Service { 

    private EventBus bus = EventBus.getDefault(); 


    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 

     bus.unregister(this); 




     return START_NOT_STICKY; 
    } 




    @Override 
    public IBinder onBind(Intent intent) { 




     return binder; 
    } 

    @Override 
    public boolean onUnbind(Intent intent) { 


     return super.onUnbind(intent); 

    } 

    public void onEvent(ChronometerEvents freq) { 
     Log.e("Chronometer", "Chronometer" + freq.getTime()); 


    } 







} 

是更多鈔票用greenrobot事件總線發送?

+0

顯示我們的代碼。是intentservice嗎? – Raghunandan

+0

您在服務中寫入的分享代碼 –

+0

請檢查我的代碼 – praj

回答

2

我強烈建議在這裏重新考慮你的架構。 EventBus不是爲了跨越流程邊界而設計的,Android服務不會輕易將這一想法付諸實踐。

EventBus是一個很好的工具,但它很容易被誤用。

如果你想從活動發送信息到服務,最好使用Intent,但如果你真的需要一些更緊密的交互,那麼你應該考慮綁定。 Eventbus不應取代這些交互。

+0

事件總線應該取代這些交互,因爲他們的口號是「簡化活動,碎片,線程,服務等之間的通信的Android優化事件總線」。這意味着我們應該能夠在活動<->服務之間進行溝通。所以我們可以跳過綁定到服務:/ –

相關問題