기술공부 167

안드로이드 - 쓰레드

1. 안드로이드 쓰레드 - 쓰레드는 여러 처리를 비 동기적으로 처리하기 위해 사용한다. - 안드로이드는 비 동기적 처리 외에 네트워크에 관련된 코드는 전부 쓰레드로 운영해야 한다. *동기적 작업 - 위에서 아래로 순차적으로 코드가 실행되며 작업하는 것. *비동기 작업 - 여러개를 왔다갔다왔다갔다 하면서 마치 동시에 실행되는 것처럼 작업하는 것. 2. ANR 현상(응답 없음) - 안드로이드 OS는 Activity의 코드를 처리하기 위해 쓰레드를 발생시킨다. 여기서 발생되는 쓰레드를 Main Thread라고 부르며, UI Thread(메인쓰레드에서만 화면 처리가 가능하기 때문에)라고 부르기도 한다. - Main Thread가 현재 작업을 하지 않을 때만 화면 작업이 가능하며 Main Thread가 바쁠 때 ..

안드로이드 - 권한 및 쓰레드

1. 권한(Permissions) - 안드로이드는 개인 정보, 센서, 카메라, 저장소 등 개인 정보와 관련된 기능을 사용하기 위해서 권한을 등록해야 한다. - 권한 등록은 사용자가 애플리케이션을 다운로드 받거나 설치하면 애플리케이션 정보에서 확인이 가능하다. - 권한 등록의 목적은 사용자에게 애플리케이션이 어떠한 기능을 사용하는지 알려주는 목적으로 사용한다. - 권한 등록을 필요로 하는 기능을 사용할 때 권한을 등록하지 않으면 오류가 발생하여 개발자는 반드시 권한을 등록해야 하고 등록된 권한은 사용자에게 고지된다. - 안드로이드 마시멜로우 버전부터 개인 정보와 관련된 권한은 애플리케이션 내부에서 고지하고 사용 허가를 맡도록 변경되었다. - 권한 사용 시 반드시 사용자에게 고지하고 이를 승인 받는 작업이 ..

안드로이드 - Style Notification

1. Style Notification - 안드로이드 4.1에 새롭게 추가된 부분으로 4.0 이하 버전에서는 기본 알림 메세지로 표시된다. - 안드로이드 4.1 이후 부터는 알림 메세지를 접었다 펼쳤다 하면서 부가 정보를 표기할 수 있다. 2. Big Picture Style - 메세지를 펼쳤을 때 이미지를 표시할 수 있다. 1. 빌더 세팅 2. Big Picture Style 세팅 3. Notification 객체 만들어서 띄우기 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener {..

안드로이드 - Pending Intent

1. Pending Intent란? - Notification 메세지를 통해 어플리케이션의 Activity(화면)를 실행할 수 있는데 이 때 사용하는것이 Pending Intent이다. - Pending Intent를 통해 실행되는 Activity로 데이터를 전달할 수도 있다. 2. 구성방법 1. Notification 빌더 생성 2. Intent 생성 - *Intent: 안드로이드 OS에게 저 이거 실행시켜주세요 시키는 것. - 이 부분에서 설정된 Activity로 이동할 수 있고, data도 보낼 수 있다. 3. pendingIntent에 메세지를 클릭한 후 이동할 Activity 설정 4. NotificationManager에 최종 연결 button3.setOnClickListener { view ..

안드로이드 - Notification

1. Notification이란? - Notification은 애플리케이션과 별도로 관리되는 메세지이다. - Notification 메세지를 OS에게 요청하면 OS는 알림 창 영역에 알림 메세지를 표시한다. - 화면을 가지지 않는 실행단위에서 메세지를 표시할 때 주로 사용한다. 2. 특징 - 사용자가 메세지를 확인하거나 제거하기 전까지 메세지가 유지된다. - 메세지를 터치하면 지정된 Activity가 실행되어 애플리케이션 실행을 유도할 수 있다. - 안드로이드 4.0 이하, 4.0~7.1버전, 그 이상 버전으로 3가지 Notification이 있다. - 안드로이드 8.0부터는 노티피케이션 채널이라는게 생겼다. 3. Notification Channel - 안드로이드 8.0부터 새롭게 추가된 기능으로 사용..

안드로이드 - 리스트 다이얼로그

1. 리스트 다이얼로그란? - 다이얼로그에 리스트뷰를 표시할 수 있는 다이얼로그 - 다이얼로그는 버튼을 총 3개까지 배치할 수 있는데 그 이상이 필요할 경우 리스트 다이얼로그를 사용하면 된다. 2. 기본 다이얼로그 - 리스트 다이얼로그에서 어떤 항목을 클릭하면 그 항목의 데이터가 텍스트뷰에 나오도록하는 예제. - 리스너 세팅할 때 버튼들에 세팅하면 이게 몇번째 버튼인지/setItems에 세팅하면 이게 몇번째 항목인지가 들어옴. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button8.setOnClickListener { v..

카테고리 없음 2020.02.13

안드로이드 - 다이얼로그

1. 다이얼로그란? - 개발자가 필요할 때 사용자에게 메세지를 전달하는 용도로 사용 - 다이얼로그가 나타나 있을 때는 주변의 뷰를 누를 수 없다. - 메세지 전달이나 입력 등의 용도로 사용된다. 2. 기본 다이얼로그 - 총 3개의 버튼을 배치할 수 있다. - 아이콘, 제목, 본문내용, 최대 버튼 3개 // 1. 버튼을 누르면 기본 다이얼로그가 뜨게 button4.setOnClickListener { view -> var builder = AlertDialog.Builder(this) // 아이콘 builder.setIcon(R.drawable.images) // 제목 builder.setTitle("기본 다이얼로그") // 본문 내용 builder.setMessage("본문 입니다") //버튼을 눌렀을 ..

안드로이드 - 메시징 - Toast

1. Toast란? - 안드로이드에서 간단하게 메세지를 표시할 때 사용한다. - 나타났다가 자동으로 사라지는 메세지 - 화면과 관련 없이 안드로이드 OS에게 메시지 출력을 요청하고 안드로이드 OS는 각 애플리케이션이 요청한 순서대로 메세지를 표시한다. 2. 주요 메서드 - makeText : 토스트 메시지 객체를 만든다. 화면 모양, 글자 크기 및 색상 등은 기본 설정되어 있는 것을 사용한다. - setGravity : 토스트 메시지가 표시될 위치를 설정한다. 3. 버튼을 눌러서 만들기. 1. 버튼의 리스너 설정 2. 리스너에 makeText // 1. 기본 토스트 메세지 출력 button2.setOnClickListener { view -> var t1 = Toast.makeText(this, "토스트..

안드로이드 - ActionBar

1. ActionBar는? - 화면 상단에 배치된 바 부분을 의미 - OptionMenu 항목의 일부를 배치할 수 있다. - OnCreateOptionMenu()로 생성 - OnOptionsItemSelected()로 옵션 메뉴 설정 - ActionBar에 나오는 애들은 menu.xml의 ShowasAction으로 설정 2. 구성방법 - OptionMenu를 사용하는 방법과 동일하며 ActionBar를 위한 속성 몇 가지를 설정한다. - Icon : ActionBar에 표시되는 아이콘을 설정한다. - showAsAction : ActionBar 배치 여부를 결정한다. - actionViewClass : 접었다 폈다 할 때 나타날 뷰를 설정한다. 3. showAsAction - Never(기본) : 메뉴를..

안드로이드 - PopupMenu

1. PopupMenu란? - 개발자가 원할 때 원하는 곳에 메뉴를 띄울 수 있다. 2. 리스너 OnMenuItemClickListner : 메뉴의 항목을 클릭했을 때 반응하는 리스너 // 팝업 메뉴에 리스너 설정(중첩 클래스) var listner = PopupListner() pop.setOnMenuItemClickListener(listner) inner class PopupListner:PopupMenu.OnMenuItemClickListener{ override fun onMenuItemClick(item: MenuItem?): Boolean { when(item?.itemId) { R.id.item1 -> textView.text = "지존" R.id.item2 -> textView.text ..