Android Splash Screen仅在我安装应用程序时打开

时间:2013-04-05 05:21:53

标签: java android

我是一名寻求帮助的青少年程序员。

我写了一个简单的启动画面,它只在我卸载并重新安装应用程序时才有效。

请看看我是否做错了什么。

谢谢!

package ca._____.test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;

public class splash extends Activity {

 private static String TAG = splash.class.getName();
 private static long SLEEP_TIME = 5;    // Sleep for some time

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.requestWindowFeature(Window.FEATURE_NO_TITLE);    // Removes title bar
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,     WindowManager.LayoutParams.FLAG_FULLSCREEN);    // Removes notification bar

  setContentView(R.layout.spash_screen);

  // Start timer and launch main activity
  IntentLauncher launcher = new IntentLauncher();
  launcher.start();
  }

 private class IntentLauncher extends Thread {
  @Override
  /**
   * Sleep for some time and than start new activity.
   */
  public void run() {
     try {
        // Sleeping
        Thread.sleep(SLEEP_TIME*1000);
     } catch (Exception e) {
        Log.e(TAG, e.getMessage());
     }

     // Start main activity
     Intent intent = new Intent(splash.this, MainActivity.class);
     splash.this.startActivity(intent);
     splash.this.finish();
  }
}
}

1 个答案:

答案 0 :(得分:2)

尝试在onResume()中启动IntentLauncher线程,当活动的onResume()调用时,活动被创建,它将显示屏幕。

第二,也是最好的事情是你可以在这样的处理程序中启动onResume()中的MainActivity

new Handler().postDelayed(new Runnable() {

 public void run() {
  Intent intent = new Intent(splash.this, MainActivity.class);
  splash.this.startActivity(intent);
  splash.this.finish();
     }
}, 5000);

这是最好的方式。