과제/모바일인지/2013/UML/배포용 subscribe 예제

Retired DISLab
< 과제 | 모바일인지 | 2013 | UML
Swpark (토론 | 기여) 사용자의 2014년 1월 28일 (화) 12:15 버전
(비교) ← 이전 판 | 현재 판 (비교) | 다음 판 → (비교)
이동: 둘러보기, 찾기

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);	
	}	
}
개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기