Page 498 - 3-3
P. 498
SharedPreferences setting; // 어플리케이션 설정이 저장된 SharedPreference
GetFloor task; // AsyncTask: Web 서버로부터 현재 층을 불러옴
String IP; // Web Server Address
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_elevator);
textFloor = (TextView) findViewById(R.id.textFloor);
textFloor.setText("0");
// 현재 어플리케이션의 SharedPreference 를 불러옴.
setting = getSharedPreferences("setting", MODE_PRIVATE);
}
// 안드로이드에서 네트워크 관련 작업은 어플리케이션이 멈추는 현상을 발생시킬 수 있으므로
// Main UI Thread 에서 네트워크 관련 작업을 금지함 따라서 다른. Thread 에서 네트워크 관련
작업을 수행
// 하도록 함 만약. Thread 에서의 작업이 Main UI 를 변경시켜야하는 경우 AsyncTask 를 활용할
수 있음.
// 어플리케이션 내에 2 개 이상의 AsyncTask 가 동작되면 나중에 실행된 AsyncTask 가 동작하지
못함.
// 따라서 onResume() CallBack 에서 AsyncTask 를 시작하고, onPause() CallBack 에서
AsyncTask 를 제거함.
@Override
protected void onResume() {
super.onResume();
// SharedPreference 에 Web Server 주소가 설정되지 않았을 경우 서버 주소 설정 Dialog 를
표시.
IP = setting.getString(getString(R.string.WEB_SERVER), null);
if (IP == null) {
setWebAddress();
}
// 새로운 AsyncTask 객체를 생성하여 실행.
task = new GetFloor();
task.execute("http://" + IP + "/project/iot-elevator/android/elevator.php");
}
@Override
protected void onPause() {
super.onPause();
// AsyncTask 종료.
- 498 -