과제/모바일인지/2013/UML/배포용 subscribe 예제
Retired DISLab
public class BusAgentActivity extends Activity { Agent agent = new BusAgent(new Handler()); @Override public void onCreate(Bundle[] bundle) { try { BlackboardMonitor bm = BlackboardMonitor.getInstance(); bm.subscribe(BlackboardMonitor.OBJ_CURRENT_CONTEXT, BlackboardMonitor.DATA_LATITUDE, BlackboardMonitor.UPDATE, agent); } catch (RemoteException e) { e.printStackTrace(); } ContentValues cv = new ContentValues(); // Current Context cv.put(BlackboardMonitor.OBJ_CURRENT_CONTEXT + "." + BlackboardMonitor.DATA_TIME, edtTime.getText().toString()); cv.put(BlackboardMonitor.OBJ_CURRENT_CONTEXT + "." + BlackboardMonitor.DATA_LATITUDE, edtLati.getText().toString()); cv.put(BlackboardMonitor.OBJ_CURRENT_CONTEXT + "." + BlackboardMonitor.DATA_LONGITUDE, edtLongi.getText().toString()); // Moving Context cv.put(BlackboardMonitor.OBJ_MOVING_CONTEXT + "." + BlackboardMonitor.DATA_MOVING_FLAG, edtMovingFlag.getText().toString()); try { BlackboardMonitor bm = BlackboardMonitor.getInstance(); bm.update(cv); } catch (RemoteException e) { e.printStackTrace(); } } }
public class WeatherAgentActivity extends Activity { Agent agent = new WeatherAgent(new Handler()); @Override public void onCreate(Bundle[] bundle) { try { BlackboardMonitor bm = BlackboardMonitor.getInstance(); bm.subscribe(BlackboardMonitor.OBJ_CURRENT_CONTEXT, BlackboardMonitor.DATA_TIME, BlackboardMonitor.UPDATE, agent); } catch (RemoteException e) { e.printStackTrace(); } } }
public class BusAgent extends Agent { public final static String NAME = "BusAgent"; public BusAgent(Handler handler) { super(NAME, handler); Log.d("mif.BusAgent", "ActionLoggerAgent.ActionLoggerAgent"); } @Override protected void onInit() { Log.d("mif.BusAgent", "ActionLoggerAgent.onInit()"); } @Override public void terminate() { Log.d("mif.BusAgent", "ActionLoggerAgent.terminate()"); } @Override protected void onRequestCard(String wantedData) { // not used Log.d("mif.BusAgent", "ActionLoggerAgent.run"); } @Override public void onNotify(String objName, String dataName, String oldValue, String newValue, String operation) { Log.d("mif.BusAgent", "ActionLoggerAgent.onNotify(" + objName + ", " + dataName + ", " + oldValue + ", " + newValue); } }