안드로이드 6

안드로이드 백그라운드 Thread,Looper,Handler

안드로이드 UI는 기본적으로 싱글 스레드 모델로 작동하므로, 이 영향을 고려해 개발하지 않으면 애플리케이션의 성능이 저하될 수 있습니다. 따라서 메인 스레드에서 긴 작업을 하는 것을 피하기 위해 여분의 스레드를 사용해야 합니다. 다른 스레드에서 UI 스레드로 접근할 수 있도록 안드로이드에서 제공하는 스레드 간 통신 방법을 소개합니다.소개안드로이드의 애플리케이션을 실행하면 시스템은 메인 액티비티를 메모리로 올려 프로세스로 만들며, 이 때 메인 스레드가 자동으로 생성됩니다. 메인 스레드는 안드로이드의 주요 컴퍼넌트를 실행하는 곳이자 UI를 그리거나 갱신하는 일을 담당할 수 있는 유일한 스레드이므로 UI 스레드라고도 불립니다.안드로이드 화면을 구성하는 뷰나 뷰그룹을 하나의 스레드에서만 담당하는 원칙을 싱글 스..

안드로이드 2017.03.28

안드로이드 액티비티에 데이터를 전달하기

1. Activity에 데이터 표시.새로운 Activity를 화면에 표시하는 목적은 여러가지가 있지만, 그 중에 많은 비중을 차지하는 것이 바로 사용자가 선택한 아이템의 상세 정보를 보여주는 것입니다. ListView에 아이템(예. 연락처 이름) 리스트를 표시하고, 사용자가 하나의 아이템을 선택하면 아이템의 상세 정보(예. 이름, 전화번호, 주소 등)를 새로운 Activity로 전달하여 사용자에게 표시하는 경우를 예로 들 수 있죠. [안드로이드 액티비티]에서, Activity를 실행하기 위해서는 Intent를 사용해야 한다고 설명했습니다. 실행하고자 하는 Activity 클래스를 Intent 객체에 지정한 다음, startActivity() 함수를 호출하는 간단한 코드를 소개했었죠. Intent inte..

안드로이드 2017.03.15

Thread1 - 핸들러 메세지 전송 방식으로 수행

어플리케이션을 위해서 프로세스가 하나 만들어 지면 메인 스레드에서는 최상위에서 관리되는 어플리케이션 객체인 액티비티와 브로드 캐스트 수신자 등 새로운 윈도우를 관리하기 위한 '메시지 큐'를 실행하게 됩니다. 이 '메시지 큐'를 이용해서 순차적으로 코드를 수행할 수 있고, 이렇게 '메시지 큐'를 이용해 메인 스레드에서 처리할 메시지를 전달하는 역할을 하는 것이 바로 '핸들러 클래스'입니다. 위의 그림에서 보이 듯이 새로만든 스레드 (스레드#1)가 수행하려는 정보를 메인 스레드로 전달하기 위해서는 먼저 핸들러가 관리하는 '메시지 큐'에서 처리할 수 있는 메시지 객체 하나를 참조해야 합니다. 객체 하나를 참조하기 위한 방법으로는 obtainMessage() 메소드를 이용할 수 있고 호출의 결과로 메세지 객체를..

안드로이드 2017.03.07

인텐트간 데이터 전달,수신 방법

인텐트 메소드(putExtra,getExtra,getIntent) 이용하여 Activity간 데이터 전달, 수신 방법 [String]public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String strArray[] = {"hi","hello"}; Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("itpangpan..

안드로이드 2017.03.03

인텐트에 대한 개념 및 구현 방법

1. 인텐트 핸드폰 어플리케이션을 사용할 때마다 버튼을 누르면 다른 화면이 뜨는 것은 당연하다는 듯이 생각해왔다. 이런 동작을 하기 위해서 사용되는 것이 바로 인텐트(Intent)라는 매커니즘이다. 하나의 액티비티에서 다른 액티비티를 시작하려면 액티비티의 실행에 필요한 여러가지 정보들을 보내주어야 하는데, 이 때 사용하는 메세지가 인텐트이다. 2. 인텐트의 종류 1) 명시적 인텐트명시적 인텐트에서는 타깃 컴포넌트의 이름을 지정한다. 다시 말해서 "어플리케이션 A의 컴포넌트 B를 구동하여라."와 같이 명확하게 지정하는 것이다. 흔히 동일한 어플리케이션 내에 있는 다른 액티비티를 실행할 때 사용된다. Intent intent = new Intent(this, NextActivity.class); startA..

안드로이드 2017.03.03

fcm push notification (firebase) 안드로이드 푸쉬알림 예제

Firebase Cloud Messaging을 사용해서 안드로이드 푸시 알림을 구현하는 방법 1. project level의 build.gradle 파일에 google-service를 추가dependencies { classpath 'com.android.tools.build:gradle:2.1.0' //classpath 'com.google.gms:google-services:3.0.0' classpath 'com.google.gms:google-services:3.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }2. app leve..

안드로이드 2017.03.03