Android で起動用のスプラッシュ画面は、
スプラッシュ画面表示用Activity → 起動後Activity
を android.os.Handler の post 機構を利用して作成する。
例)
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Window;
/**
* SplashActivity
*/
public class SplashActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); // タイトル表示しない
setContentView(R.layout.splash); // スプラッシュ用のレイアウト
Handler handler = new Handler();
handler.postDelayed(new Splash(), 100);
}
class Splash implements Runnable{
@Override
public void run(){
// 時間の掛る処理
Intent intent = new Intent(getApplication(), MainActivity.class);
startActivity(intent);
SplashActivity.this.finish();
}
}
}
AndroidManifest.xml の一部を、SplashActivity が起動するように書き換える(元のintent-filter は削除)
<activity android:screenOrientation="portrait" android:name="SplashActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>