[Android] Service <-> Activity Communication (feat. Bind Service)
·
Android
Service는 App의 Background Thread로 동작한다고 소개했다. activity에서 어떤 버튼을 눌러 Service에게 Intent를 매개로 데이터를 넘겨주는 것(Activity -> Service)은 쉬웠다. 그럼 반대로 Service ->Activity를 하기 위해선? Service 용도 지난 시간에 배웠지만 복습해보자 UI와 관계없는 어떤 작업이 앱이 실행중이든 실행중이지 않든 (Background) 어떤 작업이 수행되도록 하고싶을 때 ex. music play service 즉 Service Activity 양방향 Communcation 을 할 수 있는 2가지 방법을 소개한다. 1. BroadCast System BroadCastReceiver 를 모른다면 아래 글을 참고하시라 [..
[Android] Service (feat. Thread)
·
Android
개요 Background에서 실행되는 애플리케이션 구성요소 특징 자체 프로세스를 갖지 않음. 쓰레드도 아니며 메인 쓰레드에서 동작되는 구성 요소(Component) 용도 BGM 재생 Phone 사용량 계산 App Update 검사 Service 유형 종류 설명 Foreground 사용자에게 잘 보이는 작업을 수행. 서비스는 알림을 표시해야함. (User - App Interaction이 직접 없을 때도 계속 실행) ex) Audio App Playing 도중 Background 사용자에게 직접 보이지 않는 작업 수행 API Level 26부터 Background 실행 제한. Bind Application component가 서비스에 바인딩된 서비스 유형 Client - Service Interface를 ..
[Android] drawable resize, customizing
·
Android
[When to use?] Drawable resource 확장자 png 같은 이미지 리소스를 사용하다보면 width, height 사이즈를 임의 조정하거나 배경색 변경, 테두리 굴곡 부여등의 커스터마이징이 필요할 때가 있다. 이를 위한 솔루션을 정리해본다. 1. shape tag 별도의 xml 파일을 생성하고 최상단에 이 구문을 추가한다. : 셰이프 드로어블, 이는 루트 요소에 배치해야함. : 문자열. 필수. XML 네임스페이스를 정의하는 구문 안드로이드 개발시 "http://schemas.android.com/apk/res/android"
[Android] BroadCast Receiver
·
Android
[개요] Application 차원에서 신호를! 송수신하는 Component system or Application 에서도 Intent Fillter를 통해 메시지 송수신 가능. ※ when to use? 시스템의 화면 꺼짐, 화면 캡쳐, SMS 문자 수신, , 배터리 부족, 충전 등 앱단이 아닌 시스템상에 일어나는 작업들의 송/수신에 사용한다. [특징] API Level 26부터 background 수신 불가능 (Exception. 일부 앱) ∵ system 메시지 수신을 위해 background 메모리 리소스 소모가 커져서 막아둠. (배터리 사용량 大) 앱이 실행되는 동안에만 (foreground) 수신 가능. [사용] 등록(registerReceiver) 및 해제(unregisterReceiver)..
[Android] AsyncTask
·
Android
AsyncTask 란? asynchronous Task class executed by background thread 용도? Background에서 Task를 수행하면서 UI Thread로 결과를 보낼 때 AsyncTask Params: Background에서 실행되는 태스크로 입력되는 데이터 타입 Progress: Background Thread의 doInBackground에서 UI Thread의 onProgressUpdate로 전달되는 데이터 타입 Result: Background Thread에서 만들어 Callbak FUnction으로 보내지는 Data type 주요 메소드 onPreExecute - Task 실행 전에 Task를 setup하는데 사용함 doInBackground() - 코드 내용..
[Android] Anonymous Function + Lambda (feat. Click Listenenr)
·
Android/OS
흔히 Android에서 Button.SetOnClickListener 를 자주 사용하는데 이때 꼭 알아야할 개념이 Lambda function 과 Listener이다. Listener의 동작 원리? Android OS는 View에 달려있는 모든 Listener를 켜놓는다. View.OnClickListener에는 onClick이라는 메소드가 존재하고 실제 클릭 이벤트가 발생할 때마다 어느 View에서 이벤트가 발생했는지 식별하여 오버라이딩한 메소드 동작을 수행한다. 동작 수행의 주체는 Android OS이다. 예제를 통해 아라보자 [Layout.xml] [Activity.kt] package com.example.android_tutorial import android.os.Bundle import an..