안드로이드의 Intent란?

인텐트(Intent)란? 인텐트는 컴포넌트(액티비티, 서비스, 브로드캐스트 리시버)간에 통신을 하기 위한 메시지 객체 입니다. Intent를 사용하는 방법은 여러가지가 있지만 일반적으로 3가지입니다. 액티비티의 시작: startActivity(Intent), startActivityForResult(Intent, requestCode) 서비스의 시작: startService(Intent), bindService(Intent) 브로드케스트 전달: sendBroadcast(Intent), sendOrderedBroadcast(Intent), sendStickyBroadcast() 인텐트 유형 명시적 인텐트(Explicit Intent) : 시작할 컴포넌트 이름을 지정합니다. (예: new Intent(context, 클래스이름) 또는 Intent.setClass(context, 클래스이름) 더보기…

ViewGroup과 View의 관계

ViewGroup과 View의 관계 안드로이드의 UI는 ViewGroup과 View의 계층으로 이루어집니다. 타입 설명 View View는 액티비티에서 화면을 구성하는 최소 단위로 화면에 보이는 모든것은 View입니다. 또 다른말로 위젯이라고도 하며 대표적으로 ImageView, TextView, EditText, Button 등이 View를 상속 받아 만든 클래스입니다. ViewGroup n개의 View를 담을 수 있는 컨테이너로 ViewGroup 또한 View를 상속받아 만든 클래스 더보기…

ANR이란? (Android Not Responding)

ANR? 애플리케이션을 개발 하다보면 위 이미지와 같은 ANR 다이얼로그를 종종 볼때가 있습니다. 안드로이드 시스템에서는 일정 시간 사용자와 상호작용이 불가능할 때 애플리케이션의 강제종료를 위해서 ANR 다이얼로그를 호출합니다.  ANR이 발동되는 경우 5초 이내에 터치 이벤트에 대한 응답이 없을 때 브로드캐스트 리시버의 onReceive()가 10초 내에 리턴되지 않을 때 보통 ANR이 발동되는 경우가 MainThread(UI 더보기…

액티비티간 데이터 전달 : Intent와 startActivityForResult()

다른 액티비티로 데이터 전달하기 데이터를 전달하는 방향에 따라 전달방법을 두가지로 나눌 수 있습니다. A Activity에서 B Activity를 호출과 함께 Data 전달 A Activity가 B Activity를 호출한 뒤, B Activity를 종료하며 결과값을 A액티비티로 데이터 전달 다른 액티비티로 데이터 전달하기 사용자의 텍스트 입력을 받을 수 있는 InputActivity가 있다고 가정한다면 다음과 같이 입력한 더보기…

액티비티의 시작과 종료:startActivity() and finish()

액티비티의 시작 다른 액티비티를 시작하려면 Context.startActivity(Intent) 를 이용하면 됩니다. 파라미터로 Intent라는 것이 필요합니다. Intent란? Intent는 컴포넌트간의 런타임 바인딩을 제공하는 객체입니다. Intent는 작업의도를 나타내며 intent객체를 통해 다른 컴포넌트를 실행하고, 메시지를 전달하는 것들이 가능합니다. 먼저 다른 액티비티를 실행하려면 액티비티부터 만들어야겠죠? 프로젝트 구조에서 최상위에서 마우스 우클릭을 하여 빈 액티비티를 생성합니다. 저는 SecondActivity라고 명명 했습니다. 더보기…

액티비티의 생명주기(Lifecycle of Activity)

액티비티의 생명주기 함수는 입력을 받아 출력을 하고, 프로그램은 실행을 하면 끝이있듯이 액티비티 또한 생성부터 소멸까지 생명주기(Lifecycle)가 존재 합니다.  Activity 클래스는 생명주기와 관련된 몇가지 콜백 메소드를 갖습니다. 이러한 콜백을 통해 개발자가 액티비티가 어떻게 동작할 것인지, 사용자가 이 액티비티를 떠난다면 어떻게 할것인지, 다른 화면으로 갔다가 다시 이 액티비티로 진입하면 어떻게 할것인지에 대한 더보기…