У меня есть проблема, и это - мой SplashScreen, который я имею. Это создается как введение и после 3 секунд, которые это показывает главному меню программы. Так или иначе, если я придавливаю Кнопку "Назад" или кнопку "Домой" в течение времени шоу SplashScreen, она закрывается, но действие, за которым я принял решение следовать после SplashScreen, будет все еще бежать за этими тремя секундами.
Мой код: ***** ОБНОВЛЕННЫЙ КОД *****
Handler ur = new Handler();
myRun = new Runnable() {
public void run() {
mainIntent = new Intent(SplashScreen.this,MyApp.class);
SplashScreen.this.startActivity(mainIntent);
SplashScreen.this.finish();
overridePendingTransition(R.anim.fadein,
R.anim.fadeout);
}
};
ur.postDelayed(myRun, SPLASH_DISPLAY_TIME);
}
protected void onStop() {
super.onStop();
ur.removeCallbacks(myRun);
}
Даже если у меня будет onStop () в этом SplashScreen, то следующее действие будет все еще бежать за SPLASH_DISPLAY_TIME.
Так как я изменил код, я получил Силу Близко после того, как я нажал кнопку "Домой", и SplashScreen исчез, также, я не могу запустить свое второе действие.
Попробуйте сделать это так:
private static final int SPLASH_DISPLAY_TIME = 3000;
Handler ur = new Handler();
Runnable yourRunnable = new Runnable() {
public void run() {
mainIntent = new Intent(SplashScreen.this,MyApp.class);
SplashScreen.this.startActivity(mainIntent);
SplashScreen.this.finish();
overridePendingTransition(R.anim.fadein,
R.anim.fadeout);
}
};
ur.postDelayed(yourRunnable, SPLASH_DISPLAY_TIME);
Затем, где-то на onDestroy или любой другой метод, который вы используете, чтобы определить, когда ваша активность splashscreen закрывается:
// somewhere
ur.removeCallbacks(yourRunnable);