Я изменил код, чтобы лучше использовать методы жизненного цикла.понравилось менять его.:)
public class SplashScreen extends Activity {
protected int _splashTime = 5000;
private Thread splashTread;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
final SplashScreen sPlashScreen = this;
// thread for displaying the SplashScreen
splashTread = new Thread() {
@Override
public void run() {
try {
synchronized(this){
wait(_splashTime);
}
} catch(InterruptedException e) {}
finally {
if(!isFinishing()) // This pretty useful boolean val tells if
//user has pressed the back button. very useful.
{Intent i = new Intent(SplashScreen.this, Main.class);
startActivity(i);
finish();
}
stop();
}
}
};
splashTread.start();
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Toast.makeText(this,"exec---",Toast.LENGTH_LONG).show();
synchronized(splashTread){
splashTread.notifyAll();
}
}
return true;
}
@Override
protected void onPause() {
super.onPause();
if(splashTread.getState()==Thread.State.TIMED_WAITING){
//Thread is still waiting and Activity is paused. Means user has pressed Home. Bail out
finish();
}
}
}
Моя точка зрения заключается в том, что использование Splash Screen не часто, но, возможно, необходимо.Если вы выполняете тяжелую работу за экраном (например, игры).