일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 팀플회고
- 머신러닝
- 리액트 네이티브
- 백준 5525번
- SQL
- 네트워크
- 리액트 네이티브 시작하기
- 데베
- 자바
- 백준 4358번
- 깃허브 토큰 인증
- 깃허브 로그인
- 데이터베이스
- 문자열
- 리액트 네이티브 프로젝트 생성
- 모두의 네트워크
- 모두를위한딥러닝
- 모두의네트워크
- 깃 터미널 연동
- 백준 4949번
- 모두를 위한 딥러닝
- 정리
- 지네릭스
- 백준
- 딥러닝
- React Native
- 깃 연동
- 스터디
- HTTP
- 백준 4358 자바
- Today
- Total
솜이의 데브로그
안드로이드 스튜디오 실습 #15 ~ #20 본문
영상 출처는 여기
#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 창에서 선택한 값이 옆에 텍스트로 출력되는 것을 확인 할 수 있다.
'Security > 이프로_Phishing Fishing' 카테고리의 다른 글
악성 url 판단 기준 정하기 (0) | 2021.07.26 |
---|---|
안드로이드 스튜디오 실습 #23 ~ #26 (0) | 2021.05.24 |
안드로이드 스튜디오 실습 #10 ~ #14 (0) | 2021.05.16 |
안드로이드 스튜디오 실습 #5~#9 (0) | 2021.05.10 |
안드로이드 스튜디오 실습 ~#4 (0) | 2021.05.10 |