필자는 버튼을 누르면 초가 지나는 timer를 구현하고 싶다.(아래 코드는 버튼을 클릭했을 때의 이벤트 내에 있음)

그러기 위해서는 timer 스레드를 만들어 줄 필요가 있는데 코드는 다음과 같다.

final TextView Display_ = (TextView) findViewById(R.id.Display_); final Timer ssmmss = new Timer(); TimerTask outputtime = new TimerTask() { @Override public void run() { msecond ++; if(msecond > 5) { ssmmss.cancel(); }else Display_.setText(""+msecond); } } }; ssmmss.schedule(outputtime, 0,1000);

schedule 에 들어있는 것들 (timeTask 스레드, 지연시간, 주기) 이다.

이렇게 하면 필자는 바로 시간초가 나올 줄 알았지만 그렇게 간단한 것이 아니였다.

Only the original thread that created a view hierarchy can touch its views.

이런 에러가 발생을 했는데 원인은 메인 스레드 이외에 생성한 스레드로 UI를 변경할 때 나는 에러라고 한다.

그렇기에 UI를 변경하는 구문들을 빼야하는데 그러면 저 타이머 스레드를 생성한 의미가 없어진다.

고로 핸들러를 이용하여 저기 타이머 스레드가 작동할 때마다 핸들러의 내용을 불러오게 만들면 된다.

final TextView Display_ = (TextView) findViewById(R.id.Display_); final Timer ssmmss = new Timer(); final Handler timerhandler = new Handler(){ public void handleMessage(Message msg){ msecond ++; if(msecond > 5) { ssmmss.cancel(); }else Display_.setText(""+msecond); } }; TimerTask outputtime = new TimerTask() { @Override public void run() { Message msg = timerhandler.obtainMessage(); timerhandler.sendMessage(msg); } }; ssmmss.schedule(outputtime, 0,1000);

Message msg = timerhandler.obtainMessage();

timerhandler.sendMessage(msg);

이렇게 핸들러를 호출 하여주면 구동이 가능해진다.


안드로이드 스튜디오 시작화면이다. 영어를 조금만 읽어봐도 알 수 있을 정도 이다.

Start a new Android Studio project를 클릭하여 주면 위와 같은 화면이 나오게 된다.

필자는 Basic Activity를 선택하고 넘어갔다.

이름은 자동적으로 적혀있는 그대로 진행할 것이고 언어는 자바로 설정하였다.

아래의 Minimum API level에 4.0.3이라고 적혀있다. 필자의 공기계를 확인 해보니 다행이도 5버전대 였다.

최소 api 는 설정도 가능 하니 입맛에 맞게 선택할 수 있는 듯 하다.

다음을 누르니 component 설치를 진행 하였다.

이 후 프로젝트가 경로들과 코딩할 수 있는 환경이 완성 된다.

'Java > 안드로이드' 카테고리의 다른 글

안드로이드 Handler 의 Memory Leak  (0) 2019.09.12
안드로이드 activity Life Cycle  (0) 2019.09.12
안드로이드 Timer 구현  (0) 2019.09.12
안드로이드 앱 개발 준비  (0) 2019.09.12
안드로이드 앱 개발 준비(2)  (0) 2019.09.12

'Java > 안드로이드' 카테고리의 다른 글

안드로이드 Handler 의 Memory Leak  (0) 2019.09.12
안드로이드 activity Life Cycle  (0) 2019.09.12
안드로이드 Timer 구현  (0) 2019.09.12
안드로이드 스튜디오 시작  (0) 2019.09.12
안드로이드 앱 개발 준비(2)  (0) 2019.09.12

안드로이드 앱 개발을 하기 위해서는 안드로이드 기기에 연결하여 바로바로 실행하여 보면서 제작하는 것이 효율적이라고 생각하였다.

안드로이드 기기와 연결하기 위해서는 OEM USB 드라이버가 필요하다고 한다.(windows 기준)

필자는 삼성(갤럭시)폰 기준이므로 아래 사이트에 통합 usb드라이버를 받겠다.

이후 usb 디버그 모드를 설정 해 줘야하는데

상당히 인상적이였다.

디버그 모드를 설정 한 후 기기와 연결을 해야한다.

안드로이드가 선택 되어있는 지 확인을 해주자!

도큐먼트 설명
app > java > com.example.myfirstapp > MainActivity.java
기본 activity입니다(앱의 진입점). 앱을 빌드하고 실행하면 시스템이 이 Activity의 인스턴스를 시작하고 해당 레이아웃을 로드합니다.
app > res > layout > activity_main.xml
이 XML 파일은 activity UI의 레이아웃을 정의하며, "Hello world!" 텍스트가 있는 TextView 요소를 포함합니다.
app > manifests > AndroidManifest.xml
메니페스트 파일은 앱의 기본 특징을 설명하고 앱의 각 구성요소를 정의합니다.
Gradle Scripts > build.gradle
이 이름을 가진 2개의 파일이 보일 것입니다. 하나는 프로젝트용이고 하나는 "앱" 모듈용입니다. 각 모듈에는 자체 build.gradle 파일이 있지만, 현재 이 프로젝트에는 하나의 모듈만 있습니다. Gradle 도구에서 앱을 컴파일하고 빌드하는 방법을 구성하기 위해 대부분 모듈의 build.gradle 파일을 사용합니다.

이후 app 파일을 선택하고 shift + F10 run "app"을 해주자.

여기서 나는 proceed without Instant Run을 클릭했다.

나의 폰에서 Hello world! 가 나왔다.
CS의 공식 시작 문구 아닌가!!


'Java > 안드로이드' 카테고리의 다른 글

안드로이드 Handler 의 Memory Leak  (0) 2019.09.12
안드로이드 activity Life Cycle  (0) 2019.09.12
안드로이드 Timer 구현  (0) 2019.09.12
안드로이드 스튜디오 시작  (0) 2019.09.12
안드로이드 앱 개발 준비  (0) 2019.09.12

+ Recent posts