본문 바로가기

Android/Basic

(28)
[Android] startActivityForResult() 활용 예제 * 예제에 포함된 리스트는 리사이클러뷰로 구현하였으며, 이에 대한 개념은 나중에 포스팅할것이다. 다른 화면으로 데이터를 전달할 때에는 intent의 Bundle 객체에 putExtra 메소드로 데이터를 넣어 전달한다. 대부분의 예제들은 첫번째 화면의 데이터를 두번째 화면에 전송해서 뿌리는 기능을 하는 것들이었다. (내가 해본 바로는..)그래서 화면 전환은 무조건 startActivity() 로 했던 나였다. intent 객체에 그냥 데이터를 실어서 start 해버리면 되니까... 이번엔 간단한 다른 예제를 생각해보자. (부스트코스 과제하다가 알게돼서 포스팅하는 것이다.) '한줄평 작성 화면에서, 이전 화면으로 데이터 넘기기!' 먼저 스크린샷은 다음과 같다. 전체보기 액티비티 작성 액티비티 추가된 화면 사..
[Android] Permission 1. 개요 마시멜로 버전(API 23)부터 권한을 일반 권한과 위험 권한으로 나뉘었다. 이전에는 앱을 설치하는 시점에서만 권한을 부여할 것인지 물어보았는데, 사용자가 아무런 생각 없이 앱을 설치하는 경우가 많아 앱에서 아무리 많은 권한을 요구해도 그냥 승인되는 경우가 많았기 때문이다. (나도 대충 확인하고 그냥 설치했던 기억이 난다) 위험 권한은 앱이 실행된 후에 사용자에게 권한 허용을 요청해야 한다. (그래서 언제부턴가 앱 설치 후에 해당 기능을 이용하려면 특정 권한을 허용해주세요 라는 알림이 뜨는 이유인가보다.) Developer 사이트를 참고해보니, 특별 권한이라는 것도 있다. SYSTEM_ALERT_WINDOW, WRITE_SETTINGS는 특히 민감하므로, 대부분 앱은 이 권한을 사용하지 않아야..
[Android] Broadcast receiver 예제 ! 참고로 해당 포스트에서는 브로드캐스트를 발신하는 예제는 없습니다. 1. 브로드캐스트 수신자 브로드캐스팅이란, 메시지를 여러 대상에게 전달하는 것을 말한다. 예를 들어, 채팅 앱에서 이대일 채팅을 할 때 메시지는 두 사람끼리 주고받지만 여러 사람에게 한꺼번에 전달하고 싶을때는 그룹 채팅방을 만들어 한번 쓴 글을 여러 사람에게 전달하는 것을 상상하면 쉽다. 안드로이드는 여러 애플리케이션 구성 요소에게 메시지를 전달하고 싶을 때, 브로드캐스팅을 사용한다. 가장 전형적인 예로 SMS가 있다. 이 때, 인텐트를 사용한다. 앱에서 스마트폰 전역에 발생되는 글로벌 이벤트(global event)를 받아 처리하려면 브로드캐스트 수신자를 등록해야한다. 글로벌 이벤트란 "전화가 왔습니다.", "문자 메시지가 도착했습니..
[Android] Activity 생명주기 1. 개요 다른 액티비티로 전환시 기존의 액티비티는 액티비티 스택에 깔리고 새로운 화면이 추가된다. 백버튼을 눌렀을 경우 액티비티 스택에 있던 액티비티들은 다시 보여진다. 액티비티가 화면에 보이거나(focus) 보이지 않고 가려졌을 때 처리를 해야할 필요가 있다. 예를 들면, 작성하던 문서 내용을 저장하거나 게임 내역을 기억하고있는 등의 경우이다. 이렇게, 액티비티의 상태가 변할 때마다 안드로이드 시스템은 각 상황에 맞는 메소드를 자동으로 호출해주는 '액티비티의 생명주기'가 있다. 그래서 자동으로 호출되는 이 메소드들을 Override해서 각 상태에 따라 제어할 수 있다. 2. 생명주기 액티비티는 안드로이드 시스템에 관리되기 때문에 언제라도 중지되거나 메모리에서 삭제될 수 있다. 예를 들면, 전화가 오는..