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优化事件总线”。这意味着我们应该能够在活动<->服务之间进行沟通。所以我们可以跳过绑定到服务:/ –

相关问题