본문 바로가기

Android/Android 기초21

[Android] 인텐트(Intent)란 ? 인텐트(Intent)앱 컴포넌트로부터 작업을 요청하는데 사용하는 메시징 객체이다.앱 컴포넌트를 실행시키고 컴포넌트 간 데이터 전달을 하는데 사용한다.데이터는 putExtra()를 통해 담을 수 있고, 전달받은 데이터는 getExtra()를 통해 받을 수 있다. 인텐트를 통한 컴포넌트 간 통신의 대표적인 사례- 액티비티 (Activity) 시작Intent intent= new Intent(this,MainActivity.class);startActivity(intent); - 서비스(Service) 시작startService()Intent intent = new Intent( getApplicationContext(),//현재제어권자 MyService.class // 이동할 컴포넌트); startServi.. 2023. 9. 4.
[Android] 안드로이드 4대 컴포넌트(4) - 콘텐트프로바이더(ContentProvider) 콘텐트 프로바이더 (ContentProvider)콘텐트 프로바이더는 Android Application의 일부로써 앱간의 데이터를 공유할 수 있도 도와주는 컴포넌트이다.콘텐트 프로바이더는 다음의 특징을 가진다.콘텐트 프로바이더는 외부 앱에게 관계형 데이터베이스의 테이블과 유사한 하나 또는 그 이상의 테이블로써 제공한다.하나의 행(Row)은 프로바이더가 제공하는 어떤 데이터 타입에 대한 객체를 나타내고, 그 행의 각 열(column)은 해당 객체가 가지고 있는 각 데이터를 나타낸다.콘텐트 프로바이더(다른 앱)와 클라이언트(나의 앱)은 보안적으로 안전하게 연결되어 내부적으로 프로세스간 통신(IPC)을 한다.  콘텐트 프로바이더 동작 매커니즘앱은 ContentProvider에 데이터를 접근하기 위해 앱의 Co.. 2023. 9. 3.
[Android] 안드로이드 4대 컴포넌트(3) - 브로드캐스트(BroadCast) 브로드캐스트 리시버(Broadcast Receiver)브로드캐스트 리시버는 다양한 이벤트와 정보를 받아 반응하는 컴포넌트로, 브로드 캐스트 알림에 응답하는 구성요소이다.안드로이드는 여러 응용프로그램이나 장치에 메시지를 전달하기 위해 방송(Broadcasting) 메시지를 사용한다.문자메시지 도착, 배터리 방전, SD카드 탈 부착 등 이벤트가 발생하면 시스템은 이 브로드캐스트르를 수신하도록 신청한 모든 앱에게 전송한다.그리고 브로드캐스트 리시버는 이러한 방송메시지가 발생하면 반응을 한다.ex) 시스템 부팅완료, 배터리 부족, 문자메시지 수신 등  브로드 캐스트 리시버 등록 방법정적으로 등록하는 방법동적으로 등록하는 방법1. 정적으로 등록하는 방법정적 Receiver는 Receiver를 고정해서 등록해놓고 .. 2023. 9. 3.
[Android] 안드로이드 4대 컴포넌트(2) - 서비스(Service) 서비스 (Service)서비스는 안드로이드 Application을 구성하는 4대 컴포넌트 중 하나이며, 액티비티(Activity)가 종료되어 있는 상태에서도 Background에서 동작하는 컴포넌트이다.서비스는 기본적으로 UI가 동작하는 Main Thread에서 동작을하기 때문에, CPU에 집약적인 작업을 수행하거나 네트워킹  같이 시간이 오래 걸리는 작업을 할 때는 별도의 스레드를 작업을 수행하여야 ANR을 방지할 수 있다.  서비스의 종류1. 백그라운드 서비스 (Background Service)백그라운드 서비스는 사용자에게 보이지 않는 작업을 수행한다.단, 앱이 API 26 이상을 대상으로 한다면 앱이 포그라운드에 있지 않을 때, 시스템에서 백그라운드 서비스 실행 제한을 적용한다. 2. 포그라운드 .. 2023. 9. 3.
[Android] 화면 회전시 액티비티(Activity)에서 데이터는 어떻게 저장해야할까? 화면 회전시 액티비티(Activity) 생명주기onSaveIntanceState()일반적으로 onSaveInstanceState()가 호출되는 경우는 아래와 같다.화면을 가로/세로 전환한 경우시스템 메모리가 부족해 OS가 강제종료 시킨 경우사용자가 뒤로가기(Back)버튼을 눌러 액티비티(Activity)를 종료한 한경우 또는 finish()와 같이 명시적으로 종료하는 경우는 호출되지 않는다. 1. onSaveInstanceState()를 통한 데이터 저장액티비티(Activity)가 정지되기 시작하면 Bundle에 상태 정보를 저장할 수 있도록 시스템이 onSaveInstanceState() 메소드를 호출한다.이 메소드는 기본적으로 EditText 위젯 내 입력했던 텍스트 또는 ListView 위젯의 스크.. 2023. 9. 1.
[Android] 안드로이드 4대 컴포넌트(1) - Activity 액티비티(Activity)액티비티(Activity)는 사용자가 애플리케이션과 상호작용하는 UI 화면을 제공하는 컴포넌트이다.액티비티는 생명주기 관련 메소드들을 재정의하여 원하는 기능들을 구현할 수 있다.main()메서드를 사용하여 앱을 실행하는 프로그래밍 패러다임과 달리 Android 시스템은 수명 주기의 특정 단계에 해당하는 콜백 메서드를 호출하여 Activity의 인스턴스 코드를 시작한다. 액티비티(Acitivty)의 생명주기onCreate()액티비티가 생성될 때 onCreate()가 호출된다. 실행 후 '생성됨(CREATED)' 상태가 된다.이 콜백에서 액티비티 내의 모든 요소들을 이 메소드 내에서 초기화 시킬 수 있다.대표적으로 뷰를 생성하고 데이터를 바인딩하는 작업을 할 수 있다. (findVi.. 2023. 9. 1.