안녕하세요. Bucket Place의 개발자 Cloud Travel 입니다.
안드로이드를 개발하면서 자잘자잘한 것부터 세세한 것까지 기술을 적어보려고 합니다.
오늘은 그 첫번째 소개로 인트로 화면 셋팅에 대해서 알아보도록 하겠습니다.
많은 어플리케이션을 사용하시면 몇 초간 메인 화면을 띄어 주는 것을 많이 볼 수 있습니다.
이 순간 백그라운드에서는 어플리케이션이 돌아갈 수 있게 준비를 하고 있는 경우가 많을 것입니다.
예를 들어, 은행 관련 어플리케이션은 메인 화면을 보여주면서 관련된 어플리케이션(백신)을 실행하는 경우가 많습니다.
옆에는 하나의 예로 신한은행 어플을 실행했을 경우를 했습니다. 신한은행 및 한국의 대부분의 은행 어플은 V3를 백신을 연동하면서 메인화면을 기다립니다. 이외에 백그라운드에서는 무언가 더 많은 일을 준비를 하겠지요.
이런식으로 메인화면을 띄우고 몇초간 대기를 하는 동작을 적용하는 소스코드를 알아보도록 합시다.
Intro_activity.java
/*
* File name : IntroActivity.java
* Written by Jin with bucketplace.
* - Application intro page
* - This application is firstly started in this page.)
*/
public class IntroActivity extends Activity {
// intro 화면에서 사용할 핸들러를 인스턴트를 생성한다.
Handler handler_intro;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intro);
// 핸들러를 실질적으로 정의하고, 핸들러를 시작하는 지연시간을 설정한다.
handler_intro = new Handler();
handler_intro.postDelayed(run_intro, 2000);
}
/*
* run_intro : intro 핸들러에서 하는 일을 정의한다.
* 현재 페이지(IntroActivity)를 종료하면서 다음 페이지(MainActivity)를 실행한다.
* 복잡하지 않으므로, 내부 선언으로 만족시켰다.
*/
Runnable run_intro = new Runnable(){
public void run(){
Intent i = new Intent(IntroActivity.this,MainActivity.class);
startActivity(i);
finish();
// 화면이 Fade in-out효과와 함께 작동하도로 등록해준다.
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
}
};
/*
* onBackPressed function override
* - intro 화면이 나오는 중에는 back 버튼을 사용하지 못하게 한다.
* - 핸들러에 의해서 잘못된 결과를 나타낼 수 있다.
*/
@Override
public void onBackPressed(){
}
}
특별히 기술적으로 설명할 부분은 없습니다(주석이 너무 잘 달려있어서 ㅎㅎ). 메인화면을 띄우면서, 하나의 인텐트를 생성하여 다음페이지를 실행하면서 동시에 하나의 쓰레드를 실행하여 몇초간 대기시키게 하는 것이 전부 입니다.
이런 기능을 넣어 줄때 생각해야 할 부분이 하나더 있다면, Back key 처리입니다. 대부분의 어플리케이션은 위와 같이 back key를 사용 못하게 만듭니다. 왜냐하면, 로딩 중간에 back키로 인해 종료가 된다면 어플리케이션이 꼬이거나 의도하지 않는 기능을 수행하기 때문이죠...
여기까지 Android Intro Setting이라는 제목으로 간단하게 끄적여보았습니다.
대단한 기술은 아니지만, 자주 쓰이는 기술들을 차곡차곡 하나씩 쌓아가 볼가 합니다.
그럼 다음에 또 보도록 합시다.