728x90

Kotlin

18

Foreground Service 실행하기

 Service는 백그라운드에서 오래 실행되는 작업을 수행할 수 있는 어플리케이션 구성 요소이다. 음악을 재생하거나 파일 I/O를 수행하는 등 콘텐츠 제공자와의 상호작용을 백그라운드에서 수행할 수 있다. Foreground service 권한 요청 Android 9 (API level 28) 이상을 타깃으로 하는 앱은 반드시 FOREGROUND_SERVICE 권한을 요청해야한다. 이 권한은 중요도가 낮기 때문에 따로 사용자에게 요구할 필요 없이 자동으로 부여된다. ... Foreground service 시작 서비스를 실행하도록 인텐트에 담아 요청한다. Kotlin Code Kotlin Code val intent = Intent(...) // 서비스 인텐트 startForegroundService(i..

Android 2022.01.20 moonsu

Kotlin :: try~catch, throw

프로그램 코드를 작성하다 보면 해당 코드가 제대로 작동하지 못하고 중단되는 현상이 발생한다. 이것이 예외(Exception)이다. 따라서 프로그램을 실행할 때 발생할 수 있는 예외에 대비 즉, 예외 처리를 해야하는데 try 블록에서 발생한 예외를 catch 블록에서 잡아 처리한다. try{ // 예외 발생 가능성이 있는 문장 } catch (e: 예외 처리 클래스) { // 예외 처리 } finally { // 반드시 실행되어야 하는 문장 } finally 블록은 try 블록의 예외 발생 여부에 상관 없이 반드시 처리해야할 문장을 작성한다. 예를 들어 try블록에서 '파일 열기' 작업을 했다면 finally 블록에서는 반드시 '파일 닫기' 작업을 한다. 반드시 해야할 작업이 없다면 생략도 가능하다. 아래..

Android/Kotlin 2021.11.08 moonsu

Kotlin :: Unit

Unit 키워드는 타 언어의 void에 대응되는 개념이다. add(10, 20) fun add (a: Int, b: Int) : Unit { println(a + b) } // Unit은 생략 가능하다 하지만 코틀린의 Unit과 타 언어의 void가 완전히 같은 것은 아니다. void는 특수 타입으로 반환값이 없음을 나타내지만 Unit은 클래스에 정의된 일반 타입이다.

Android/Kotlin 2020.11.16 moonsu

Kotlin :: 흐름 제어 continue와 break, 레이블 (Label)

1. continue continue 키워드는 반복문에서 일부 문장을 건너 뛸 때 사용한다. fun main(args: Array): Unit { var i = 0; while (i < 10) { i += 1 if (i % 2 == 0) // i가 짝수 일 때 아래 코드를 무시하고 반복문의 처음으로 간다. continue print(i) } } // 결과 : 1 3 5 7 9 continue 를 실행하면 아래 코드를 실행하지 않고 가장 가까운 반복분의 첫 부분으로 이동한다. 위 코드에서 i 가 짝수일 때 continue 가 실행되므로 짝수는 출력되지 않는다. 2. break break 키워드는 호출 즉시 가장 가까운 반복문을 탈출한다. fun main(args: Array): Unit { var i = ..

Android/Kotlin 2020.10.27 moonsu

Kotlin :: 반복문 do~while

do~while 은 기본적으로 while 과 같지만 하나, 조건문이 마지막에 온다. do{ // 조건이 참일때 이 구간을 반복한다. } while(조건) 아래 예는 변수 i가 10이 넘지 않을 때까지 코드를 반복한다. fun main(args: Array): Unit{ var i = 0; do { println(i) i++ } while(i < 10) } // 결과 : 012345678910 while 속 조건문이 참(true)일 때 블록 속 문장을 반복한다. 변수 i 는 while이 반복될 때마다 1씩 증가하고 있다. 따라서 i 가 10이 될 때 반복문이 종료된다. 하지만 조건문이 마지막에 오기 때문에 i 는 10까지 출력된다. (동일한 조건의 while문 이었으면 9까지 출력된다.) 반복문을 사용할 ..

Android/Kotlin 2020.10.21 moonsu

Kotlin :: 반복문 while

코틀린에서 반복문 while를 사용하는 방법이다. while 은 특정 문장을 반복할 때 사용하는 키워드이다. while (조건){ // 조건이 참일때 이 구간을 반복한다. } 아래 예는 변수 i가 10이 넘지 않을 때까지 코드를 반복한다. fun main(args: Array): Unit{ var i = 0; while(i < 10){ println(i) i++ } } // 결과 : 0123456789 while 속 조건문이 참(true)일 때 블록 속 문장을 반복한다. 변수 i 는 while이 반복될 때마다 1씩 증가하고 있다. 따라서 i 가 10이 될 때 반복문이 종료된다. 반복문을 사용할 때는 무한루프에 빠지지 않도록 주의해야 한다. fun main(args: Array): Unit{ var i =..

Android/Kotlin 2020.10.21 moonsu

Kotlin :: 조건문 when

when도 if와 같이 조건에 따라 문장 실행 여부를 결정한다. when은 자바의 switch~case를 대체하는 문장이다. 아래 when을 사용한 예제가 있다. fun main(args: Array): Unit { val result = 20 when (result) { result > 50 -> { println('A') } result > 40 -> { println('B') } result > 30 -> { println('C') } result > 20 -> { println('D') } else -> { println('E') } } } // 결과 : E result 값에 따라 알맞은 println() 이 호출된다. 위 모든 비교값과도 일치하지 않을 때 else 문장이 실행되며, 생략할 수 있..

Android/Kotlin 2020.10.21 moonsu

Kotlin :: 표현식으로 if else 사용하기

코틀린에서는 if-else문을 표현식으로도 사용할 수 있다. fun main(args: Array): Unit { val result: Int = if( 1 > 0 ) { println("큰 값은 1") 1 } else { println("큰 값은 0") 0 } println(result) } // 큰 값은 1 // 1 Int 타입의 변수 result 에 if문을 대입하고 있다. if가 참이라면 if 블록 내의 마지막 표현식인 1이 result의 값으로 반환된다. 반대로 거짓이라면 else 블록 내의 마지막 표현식인 0이 반환된다. 이 때 if 와 else 블록의 표현식은 타입이 일치해야한다. if 의 마지막 표현식 타입이 Int 였다면 else 도 마찬가지로 Int 여야 한다. 그렇다면 아래와 같이 마..

Android/Kotlin 2020.10.15 moonsu

Kotlin :: 문자열 안에 표현식 값 넣기

fun main(args: Array): Unit{ val a = 10 val b = 20 println("a : $a") println("b : $b") println("a + b = ${a+b}") } // a : 10 // b : 20 // a + b = 30 변수 a와 b에 각각 10과 20을 저장한다. 큰 따옴표("") 안에 있는 문자가 출력되고 $ 뒤에 변수 이름을 적으면 해당 부분은 변수 값으로 대체된다. $ 자체를 출력하고 싶다면 $ 대신 \$ 를 사용해야 한다. fun main(args: Array): Unit{ println("a : \$a") } // a : $a 일반 변수의 값이 아닌 표현식의 값을 문자열에 포함하고 싶다면 ${표현식} 의 형식을 사용한다.

Android/Kotlin 2020.10.15 moonsu

안드로이드 스튜디오 :: Broadcast 에 권한 부여하기

안드로이드 스튜디오 :: Broadcast Receiver 안드로이드 스튜디오 :: Broadcast 전송하기 브로드캐스트에 특정 권한을 부여해 제한할 수 있다. 권한은 브로드캐스트 발신자, 수신자 모두 적용해 제한할 수 있다. 1. 권한을 사용해 전송하기 sendBroadcast(Intent, String) 또는 sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle) 를 호출할 때 권한 매개변수를 지정할 수 있다. 예를 들어 다음 코드는 메세지 발송 권한이 필요한 브로드캐스트를 전송한다. 더보기 sendBroadcast(new Intent("com.example.NOTIFY"), Manifest.permi..

Android/공통 2020.10.14 moonsu

안드로이드 스튜디오 :: Broadcast 전송하기

안드로이드 스튜디오 :: Broadcast Receiver 브로드캐스트 전송 안드로이드 앱에서 브로드캐스트를 전송하는 방법으로 다음 세 가지를 제공한다. 1. sendBroadcast(Intent) 가장 일반적인 브로드캐스트, 순서에 상관 없이 모든 수신자에게 브로드캐스트를 전송한다. 상당히 효율적이지만 수신자가 수신한 데이터를 전파하거나 중단할 수 없다. 2. sendOrderedBroadcast(Intent, String) 한 번에 하나의 수신자에게 브로드캐스트를 전송한다. 우선순위가 높은 순으로 진행되고 우선순위가 같다면 임의의 순서를 매긴다. 3. LocalBroadcastManager.sendBroadcast 발신자와 동일한 앱에 있는 수신자에 브로드캐스트를 전달한다. 앱 간에 전송할 필요가 없..

Android/공통 2020.10.14 moonsu

안드로이드 스튜디오 :: Broadcast Receiver

브로드캐스트 특정 상황에서 시스템이나 다른 앱으로 메세지를 주고 받을 수 있는 개념이 Broadcast 이다. 예를들어 기기는 재부팅 또는 충전 시작과 같은 다양한 이벤트가 발생할 때 시스템은 브로드캐스트를 전송한다. 이 때 내가 만든 앱에서 이것을 수신할 수 있다. '배터리가 15% 이하다!' 라는 시스템의 브로드캐스트 메세지를 수신받아 '절전' 상태로 변경해주는 앱을 만들 수 있다는 얘기다. 반대로 내가 메세지를 전송하는 것도 가능하다. 먼저 Broadcast 를 수신하기 위한 두 가지 방법을 소개한다. 첫째는 manifest에 선언하는것, 둘째는 context에 등록하는 것. 1. manifest 에 선언 manifest에서 다음과 같이 작성한다. (1) exported : 외부 앱이나 시스템에서 ..

Android/공통 2020.10.14 moonsu
728x90
반응형