-1

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

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

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

谢谢!

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();
  }
}
}
4

1 回答 1

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);

这是最好的方法。

于 2013-04-05T05:36:12.067 回答