Home
Se Young
Cancel

Dangerous Permission

위험 권한 부여하기 브로드캐스트 수신자를 만들어 SMS 문자를 받으려면 RECEIVE_SMS 권한이 필요하다. Manifest에 넣어준 권한은 앱을 설치할 때 사용자가 허용하면 한꺼번에 권한이 부여되는데 마시멜로(API32) 부터는 중요한 권한들을 분류하여 설치 시점이 아니라 앱을 실행 했을 때, 사용자로부터 권한을 부여 받도록 변경 되었다. ...

Services

서비스 서비스란 백그라운드에서 실행되는 앱의 구성 요소를 말한다. 서비스도 앱의 구성 요소이므로 시스템에서 관리한다. 그래서 액티비티를 만들 때 매니페스트 파일에 등록했던 것처럼 새로 만든 서비스도 매니페스트 파일에 꼭 등록 해야한다. 실행 원리와 역할 서비스를 실행하려면 메인 액티비티에서 startService 메서드를 호출하면 된다. ...

Navigation Drawer

바로가기 메뉴 바로가기 메뉴는 화면의 좌측 상단에 위치한 햄버거 모양 아이콘을 눌렀을 때 나타나는 화면을 말한다. 웹이나 앱에서 자주 사용하는 기능이며, 안드로이드에서 NavigationDrawer라고 부른다. 만들기 Navigation Drawer Activity로 새로운 프로젝트를 만든다. 그 다음 프로젝트를 생성하면 activity_...

뷰 페이저

뷰 페이저 뷰 페이저는 손가락으로 좌우 스크롤하여 넘겨볼 수 있는 기능을 제공한다. 화면 전체를 뷰 페이저로 채운다면 좌우 스크롤을 통해 화면을 넘겨 볼 수 있고, 화면 일부분만 차지하고 있어도 그 부분에서 좌우 스크롤이 동작한다. 뷰 페이저 만들기 메인 액티비티 xml을 아래와 같이 설정 activity_main.xml <?xml...

상단 탭 하단 탭 만들기

상단 탭 하단 탭 만들기 상단 탭 만들기 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas....

Action Bar

액션바 사용하기 옵션메뉴는 액션바에 포함되어 보이도록 만들어져 있다. 액션바는 액의 제목(Title)이 보이는 위쪽 부분을 말한다. 옵션 메뉴와 컨텍스트 메뉴는 각각의 액티비티마다 설정할 수 있으므로 액티비티에 추가하고 싶은 경우에는 다음이 두 메서드를 다시 정의하여 메뉴 아이템을 추가할 수 있다. public boolean onCreateO...

프래그먼트로 화면 만들기

프래그먼트로 화면 만들기 MainActivity에 버튼을 3개 추가 한 후 Fragment 파일을 추가 해준다. ListFragment.java public static interface ImageSelectionCallback{ public void onImageSelected(int position); } pu...

Fragment

프래그먼트 같은 레이아웃을 여러 화면에 사용한다면 화면을 구성하는 XML 레이아웃 파일의 코드와 기능을 동작시키는 소스 코드가 중복될 수 밖에 없다. 이렇게 화면 안에 들어가는 레이아웃이 중복되는 문제를 해결 하기 위해 부분 화면을 위한 레이아웃이나 소스 코드를 한 번만 정의하고 재사용할 수 있도록 만든것 이 프래그먼트이다. 프래그먼트 사용 ...

Activity Life Cycle

프로세스와 테스크 프로세스는 독립적인 하나의 상자와 같아서 다른 프로세스와 정보를 공유할 수 없다. 따라서 하나의 프로세스에서 다른 프로세스의 화면을 띄우려면 시스템의 도움이 필요하다. 시스템에서 액티비티의 각종 정보를 저장 해두기 위해 태스크라는 것을 만든다. 시스템은 알아서 태스크를 관리하지만 우리가 직접 제어해야 하는 경우가 생긴다. 이...

액티비티 중복문제, 인텐트 객체 전달

액티비티 중복 문제 액티비티로 만든 화면이 한 번 메모리에 만들어 졌는데도 계속 startActivity나 startActivityForResult 메서드를 여러번 호출하면 메모리에 동일한 액티비티가 여러개 만들어진다. 왜냐하면 시스템이 인텐트별로 새 액티비티를 띄워주기 때문이다. 만약 같은 액티비티에 대해 인텐트를 두 번 보내면 중복된 액티비티...