본문 바로가기

분류 전체보기82

[안드로이드] 서비스 예제1 - start service Android Component 중 하나인 Service에 관한 예제이다. Service는 크게 바인딩이 되었는지 혹은 스타트 되었는지 나눌 수 있지만 양 쪽 방식으로 작동할 수도 있다. 이번 글은 바인딩이 아닌 startService() 메서드를 통해 시작되는 서비스에 관한 예제이다. 1. Service 생성 새 프로젝트를 만들어서 서비스를 생성한다. class RingtoneService : Service() { override fun onBind(intent: Intent): IBinder { TODO("Return the communication channel to the service.") } } Ringtone을 이용할 것이기 때문에 RingtoneService로 지었다. 2. 이번 예제에서는.. 2022. 5. 18.
[안기단] 3. Broadcast Receiver [안드로이드 기초를 단단히] 3. Broadcast Receiver 안드로이드 구글 공식 문서를 공부하고 정리하는 글. Broadcast Receiver 안드로이드 앱은 안드로이드 시스템 및 기타 안드로이드 앱에서 브로드캐스트 메시지를 받거나 보낼 수 있다. Publish–subscribe 패턴처럼 관심 있는 이벤트가 발생할 때 브로드캐스트가 전송되는데 시스템 부팅이나 충전 시작과 같은 이벤트가 발생하면 안드로이드 시스템은 브로드캐스트를 전송하고 일반 앱에서도 새로운 데이터가 다운받았다는 등의 맞춤 브로드캐스트를 전송할 수 있다. 브로드캐스트 리시버(Broadcast Receiver)는 이러한 브로드캐스트를 수신할 수 있는 애플리케이션 구성 요소 중 하나로 브로드캐스트가 전송되면 시스템은 특정 유형의 브.. 2022. 5. 17.
백준 - 17822 원판 돌리기 (코틀린) [문제] https://www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net [풀이] 시뮬레이션과 구현 문제로 주어진 문제에 맞게 코드를 작성하면 된다. 처음 간단한 문제라고 생각했던 것에 비해 오래 시간이 끌린 부분이 있었는데 회전을 하는 부분에서 시간이 걸렸다. 한 칸 씩 움직일 때는 임시 변수 하나를 두어 인덱스가 0보다 작거나 배열 크기보다 클 때에 그에 맞게 회전이 가능했으나 두 칸 이상씩 움직일 땐 범위를 벗어난 수들을 따로 저장을 해야.. 2022. 4. 27.
백준 - 13459 구슬 탈출 (코틀린) [문제] https://www.acmicpc.net/problem/13459 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net [풀이] bfs를 이용하여 푼다. 두 구슬이 같이 움직이니 큐에는 구슬 각각의 좌표를 같이 넣어주고, 움직인 횟수도 같이 넣어준다. 움직인 횟수가 10번이상이면 0을 반환한다. 큐에서 나온 각각의 좌표를 방향마다 벽이나 구멍을 만날때 까지 움직인 좌표를 구하고 각각의 좌표가 이미 방문했는지 안했는지 체크하고 방문하지 않았으면 큐에 넣어준다. .. 2022. 4. 19.
백준 - 21610 마법사 상어와 비바라기 (코틀린) [문제] https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net [풀이] 구현 문제이기 때문에 문제에 따라 적절하게 코드를 작성해야 한다. 만들어진 구름을 담는 연결리스트와 만들어진 구름의 위치를 저장하는 2차원 배열을 이용한다. 가장 처음의 구름의 위치를 연결리스트에 담는다. 이후에 입력 받은 이동 정보를 통해 구름을 이동하고, 비를 내리고, 물을 주고, 다시 구름을 만드는 작업을 반복해준다. 구름을 이동하는 작업은 이동 방향과 거리를 계산하.. 2022. 4. 14.
[안기단] 2. Service [안드로이드 기초를 단단히] 2. Service 안드로이드 구글 공식 문서를 공부하고 정리하는 글. Service 백그라운드에서 오래 실행되는 작업을 수행할 수 있는 애플리케이션 구성 요소이며 사용자 인터페이스를 제공하지 않는다. 어플리케이션 구성 요소 중 하나인 서비스는 사용자가 다른 앱으로 전환하더라도 계속해서 실행될 수 있다. 서비스는 다른 구성 요소와 바인딩되어 상호작용할 수 있고, 프로레스 간 통신도 가능하다. 예를 들어 백그라운드에서 음악 재생이나 또 다른 애플리케이션 구성 요소인 Cotent Provider와 상호 작용 등의 작업을 수행할 수 있다. 서비스는 포그라운드(Foreground), 백그라운드(Background), 바인드(Bind, Bound)의 세 가지 유형이 있다. 포그라운드 .. 2022. 4. 12.