остановите следующее действие, если клавиша Home или оттесненный нажата - Android

У меня есть проблема, и это - мой 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 исчез, также, я не могу запустить свое второе действие.

1
задан Curtain 8 July 2010 в 18:40
поделиться

1 ответ

Попробуйте сделать это так:

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);
2
ответ дан 2 September 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: