在SplashScreen结束之前,MainActivity启动

时间:2014-05-09 17:20:56

标签: android splash-screen main-activity

我的Android应用程序中有一个SplashScreen活动,持续3秒,然后切换到MainActivity。

MainActivity播放声音,它有一个按钮。我的问题是当SplashScreen活动可见时播放声音。

on Main Main的onResume调用run(),run()休眠2秒并播放声音。

public void run() {

    try {
        Thread.sleep(2000);
    } catch (InterruptedException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    m.start();

    try {
        Thread.sleep((int) randomValue * 1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    m.seekTo(0);

    m.start();
    cpu.setText(EranThatWillShortYourDouble(randomValue));

    btn.setClickable(true);

}

@Override
protected void onResume() {
    super.onResume();
    run();
}

而不是SplashScreen显示3秒并切换到MainAcivity,它持续5秒,并在SplashScreen可见时播放声音。

我该怎么办?

编辑:这是我的SplashScreen活动:

public class SplashScreen extends Activity {

private static int SPLASH_TIME_OUT = 3000;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash_screen);
    new Handler().postDelayed(new Runnable() {

        /*
         * Showing splash screen with a timer. This will be useful when you
         * want to show case your app logo / company
         */

        @Override
        public void run() {
            // This method will be executed once the timer is over
            // Start your app main activity
            Intent i = new Intent(SplashScreen.this, MainActivity.class);
            startActivity(i);

            // close this activity
            finish();
        }
    }, SPLASH_TIME_OUT);
}

}

2 个答案:

答案 0 :(得分:1)

请勿在Android中使用启动画面。它们违反了设计准则并提供了不良的用户体验。

http://developer.android.com/design/patterns/help.html#your-app

答案 1 :(得分:1)

请查看AsyncTaskAndroid Runnables以及使用Handler发布延迟的功能。

不要在主线程中执行 thread.sleep,这真的很糟糕。 :)