액티비티(Activity)
애플리케이션에는UI가 있을수도 있고 없을수도 있다. 만약 Ui가 있는 애플리케이션이라고 하면 적어도 하나의
액티비티를 갖는다 ㅇㄱ티비티를 이해할수있는 가장 좋은 방법은 모바일폰의 화면과 액티비티와의 관계를 파악
하는것이다. 왜냐하면, 보통 액티비티와 UI 화면은 일대일 대응 관걔를 갖기 때문이다. 안드로이드 애플리케이션은
하나 이상의 액티비티를 갖는데 각액티비티는 하나의 UI 그리고 시스템 혹은 사용자로부터 시작된 이벤트에 반응하게
된다.또한 액티비티는 하나이 상의 뷰(View)를 사용하는데 뷰는 사용자와 직접 상호작용을 할 UI 를 의미한다.
액티비티 사용법
import android.app.Activity; //1.액티비티 패키지 IMPORT
import android.os.Bundle;
public class activity1 extends Activity { //2.액티비티 클래스 확장 구현
@override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main); //3.UI 설정
}
}
액티비티 클래스 1는 android.app 자바 패키지의 일부로 런타임에 사용된다. 안드로이드 런타임 android.jar 파일에
포함되어있다. class activitty1 2는 액티비티 클래스를 확장한다.3은 UI를 보여주는 일이다.
서비스(Service)
만약 애플리케이션이 아주 긴 라이프사이클을 갖는다면 서비스에 등록을 해야 할것이다. 예를들면 백그라운드에서
데이터를 지속적으로 동기화시켜야 하는 유틸리티는 서비스(service)로서 구현되어야 한다.
액티비티처럼 서비스 역시 안드로이드 런타임 환경에서 제공하는 클래스이다.
import android.app.Service; 1.//서비스 import
import android.os.IBinder;
import android.util.Log; //2.로그 import
public class service1 extends service implements Runnable { //3.서비스 클래스 화장
public static final String tag = "service1";
private int counter = 0;
@Override
protected void onCreate() { // 4.onCreate 메서스 초기화
super.onCreate();
Thread aThread = new Thread (this);
aThread.start();
}
public Void run() {
while (true) {
try {
Log.i(tag,"service1 firing : 3# " + counter++);
Thread.sleep(10000);
}catch(Exception ee){
Log.e(tag.ee.getMessage());
}
}
}
@Override
public IBinder onBind(Intent intent) { //5.서비스 연결
return null;
}
}
이 예제에서는 andoroid.app.Service 패키지가 포함되었다. 1에 패키지에는 Service 클래스가 포함되어 있다.
또한 , 예제에서는 디버깅에 많은 도움이 되는 안드로이드의 로깅 메커니즘을 보여주고있다.
2.로깅기능을 사용한다. 3. Service 클래스를 확장하고 있다. 또한 이클래스는 Runnable interface 를 구현하여
다중스레드 작업을 수행할수 있도록 하였다 4. onCreate 메서드는 애플리케이션의 초기화 작업을 수행하도록한다.
5. onBind 메서드는 내부 프로세스 통신관련 내용이 등장한다.
'앱개발 > 안드로이드' 카테고리의 다른 글
자바 퍼스펙티브(Java Perspective) (0) | 2013.12.02 |
---|---|
브로드캐스트 리시버(BroadcastReceiver) (0) | 2013.11.30 |
안드로이드 애플리케이션 개발 시작 (1) | 2013.11.29 |
안드로이드의 토대 (0) | 2013.11.29 |
안드로이드 스택(Stack) (0) | 2013.11.29 |
댓글