솜이의 데브로그

안드로이드 스튜디오 실습 #15 ~ #20 본문

Security/이프로_Phishing Fishing

안드로이드 스튜디오 실습 #15 ~ #20

somsoming 2021. 5. 17. 13:39

영상 출처는 여기

 

#15강 Thread & Handler 사용법

 

Thread : 백그라운드에서 작업 할 수 있는 기능. 앱을 잠시 나와있을 때도 프로그램 처리.

 

  • activity_main.xml

LinearLayout에서 버튼 두개를 생성한다.

 

 

  • MainActivity.java

Thread 시작, 종료 버튼에 대한 변수 생성하고 각각 클릭했을 때 돌아갈 내용을 구현한다.

btn_start 버튼의 경우 클릭했을 때 isThread 플래그가 true인 동안 5초 (5000millisec)동안 sleep하는 코드를 계속 run 하도록 작성한다.

 

btn_start 버튼을 클릭한 경우 isThread 플래그를 false로 바꾼다. 그러면 실행하던 스레드가 종료된다.

 

스레드는 Handler 와 많이 사용한다.핸들러 인스턴스를 새로 생성하여 오버라이딩한다. (역시 ctrl+O 눌러 쉽게 호출)

 

실행 결과위의 창에서 스레드 시작버튼을 누르면 5초에 한번 토스트 창이 뜨고, 스레드 종료를 누르면 더이상 뜨지 않는 것을 확인 할 수 있다.

 

 

#16강 Dialog 팝업창

 

기본 Acitivity에 부가적인 팝업창을 띄우고 싶을 때 사용.

 

  • activity_main.xml

LinearLayout에서 버튼 하나와 TextView 하나를 생성한다.

 

  • MainActivity.java

Dialog 버튼을 눌렀을 때의 동작을 구현한다.팝업창의 제목, 내용과 아이콘을 정의한다.ad.setPositiveButton과 ad.setNegativeButton : 팝업창에 뜨는 YES버튼을 눌렀을 때 값을 받아와서 첫 화면의 텍스트에 나타나고, NO 버튼을 눌렀을 경우 끝나도록 구현한다. 

 

실행 결과다이얼로그 버튼을 누르면 설정한 아이콘과 함께 팝업창이 나오고, 입력한 값으로 YES 버튼을 누르면 화면에 창이 뜨는 것을 확인 할 수 있다. (위의 화면에선 yesyes 입력 후 YES 버튼 눌렀음)

 

 

#19강 FCM 푸시알림

 

FCM : Firebase Cloud Messaging. 푸시알림을 띄우는 예제.

 

먼저 Firebase console (google.com) 에 들어가 로그인 후, .json 파일을 받은 후 불러온다.

 

(다음과 같은 형태로 project 바꾼 후 불러옴)

 

다시 Android 로 변환 후, gradle에서 dependencies 항목에 추가해준다. firebase는 구글이 인수한 서비스이기 때문에 추가해야한다.

 

  • build.gradle (project : pushTest)

 

  • build.gradle (Module:pushTest.app)

 

영상이 예전꺼라 현재 버전으로 작성해줘야하는데, 콘솔에서 파일 다운받을 때 밑에 어떤 문장 추가하면 되는지 설명이 잘 나와있다!! 꼭 확인하고 현재 버전으로 잘 작성해야한다. (위의 사진은 2021는 5월 기준)참고로 현재버전은 Android 프로젝트에 Firebase 추가 (google.com) 해당 링크에서 확인 가능하다.

 

onTokenRefresh : token은 각 핸드폰 기계에서 받아올 수 있는 난수의 값이다. Token을 가지고 있는 기기들은 푸시알림을 이 프로젝트에 한해서 받게 된다. 즉, Id 같은 개념.

 

  • FirebaseInstanceIDService.java

 

  • FirebaseMessagingSerivce.java

PendingIntent : 실질적인 notification에서 쓰임. Intent를 가지고 있는 클래스지만, 다른 어플리케이션의 권한을 허가해서 가지고 있는 intent를 다시 본인 앱의 프로세스에서 실행하는 것 처럼 사용한다.NotificationCompat.Builder 를 이용해 푸시 알림이 떴을 때의 행동들을 정의한다. 세팅값들 (타이틀, 자동 닫기, 텍스트, 아이콘, 소리, 진동 등)을 설정한다.

 

  • AndroidManifest.xml

만들어놓은 두가지의 서비스 파일을 Manifest에 선언한다.

 

프로그램 실행 후 콘솔 페이지에서 cloud messaging 항목에서 message를 보낸다.

 

실행결과보낸 푸시알림이 온 것을 상단바를 내려 확인 할 수 있다.

 

 

#20강 Spinner 드롭다운

 

Spinner : 아코디언 형식으로 펼쳐지는 메뉴. 

 

  • array.xml

 

res-values 에 resource 파일을 생성하여 드롭다운 메뉴에 들어갈 항목을 만든다.

 

  • acitivity_main.xml

 

다음과 같이 Spinner와 TextView를 하나씩 생성한다.

 

  • MainActivity.java

 

spinner, textview 변수를 하나씩 생성하고 xml파일과 연결한다.tv_result에 나올 텍스트를 spinner에서 선택한 텍스트로 설정하도록 setOnItemSelectedListener를 사용한다.

 

실행 결과

Spinner 창에서 선택한 값이 옆에 텍스트로 출력되는 것을 확인 할 수 있다.