生产消费者模式与Handler

2017-08-13  本文已影响99人  王小贱_ww

Processor类需要有两个功能,一个是返回当前的地理信息,另一个功能是对信息进行处理加工后返回信息。所以,我们提供一个IProcess接口


        public interface IProcessor {
            void onGpsChanged(GpsTracker.GpsEntity gpsEntity);
        
            void onSensorChanged(SensorTracker.SensorEntity sensorEntity);
        
            void close();
            
            void registerTripUpdateListener(TripManager.OnTripUpdateListener listener);
        
            void unregisterTripUpdateListener(TripManager.OnTripUpdateListener listener);
        }

我们在TripManager中申明IProcessor,在TripTracker中回调数据。数据最终需要回调给外层的,这个接口不能在TripManager中,需要在Processor中进行处理。

public class Processor implements IProcessor {

  private ArrayList<TripManager.OnTripUpdateListener> listeners = new ArrayList<>();

  @Override
  public void onGpsChanged(GpsTracker.GpsEntity gpsEntity) {

  }

  @Override
  public void onSensorChanged(SensorTracker.SensorEntity sensorEntity) {

  }

  @Override
  public void close() {
//flush
      //
  }

  @Override
  public void registerTripUpdateListener(TripManager.OnTripUpdateListener listener) {
      this.listeners.add(listener);
  }

  @Override
  public void unregisterTripUpdateListener(TripManager.OnTripUpdateListener listener) {
      this.listeners.remove(listener);
  }


}
HandlerThread handlerThread = new HandlerThread("processor");
        handler = new Handler(handlerThread.getLooper()) {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                mProcessor.onGpsChanged((GpsTracker.GpsEntity) msg.obj);
            }
        };

为什么我们要用这里要用Handler?

上一篇 下一篇

猜你喜欢

热点阅读