안드로이드 개발 질문/답변
(글 수 45,052)
현재 어플을 만들고 있는데
처음 시작할때 로고를 넣으려고 합니다 그런다음 2초후에 다른 액티비티 실행 그래서 다음과 같이 했는데
package com.cbnu.map;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class Starting extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.starting);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
startActivity(new Intent(this, Main.class));
}
}
검은 화면만 2초 나타났다가 Main클래스로 넘어가네요..
==================================================================
그래서 xml이 잘못됫나하고..
그냥
package com.cbnu.map;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class Starting extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.starting);
}
}
이렇게 하면 액티비티 실행을 없애 화면 전환은 안되나 제대로 로고가 뜹니다....
======================================================================================
xml은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg">
</LinearLayout>
제 생각에는 화면은 띄우는 시기에 뭔가 문제가 있는게 같은데 잘 모르겠네요..ㅋ
아무리 찾아도 안되서 여기다 올리네요 고수분들 답변좀 부탁드립니다.
2010.05.26 00:15:05
감사합니다..그렇다면
startActivity(new Intent(this, Main.class));
이부분은 어디에 넣어야 맞을까요??
안드로이드 활동의 생명주기가 이해가 잘 안되네요...ㅠㅠ
2010.05.26 02:54:00
기본적으로 생각 해 보았을 때, onCreate 는 아직 Activity 가 만들어지지 않은 시점입니다.
그럼 당연히 화면에는 아무것도 그려지지 않을테고 로고고 뭐고 나올 수가 없죠.
그럼 onCreate 후에 2초간 기다렸다가 다른 Activity 를 실행하는 코드가 들어가야 할 텐데
저같은 경우에는 Timer class 의 schedule(TimerTask task, long delay) method를 사용합니다.
사용법은 스스로 익히시는게 좋을 것 같고, 위에서 delay 를 2000 을 주시면
약 2초 후 startActivity 를 실행하실 수 있습니다.