如果按住主页键或按下后停止以下活动 - Android

时间:2010-07-08 16:23:51

标签: java android

我遇到了问题,那是我的SplashScreen。它构建为一个介绍,3秒后显示程序的主菜单。 无论如何,如果我在SplashScreen显示的时间内按下Back或Home按钮,它会关闭,但是我在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);
}

即使我在此SplashScreen中有onStop(),下一个活动仍将在SPLASH_DISPLAY_TIME之后运行。

由于我更改了代码,因此在按下Home按钮并且SplashScreen消失之后我强制关闭,同时,我无法启动第二个活动。

1 个答案:

答案 0 :(得分:2)

尝试这样做:

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上的某个地方或用于检测启动画面活动何时关闭的任何方法:

// somewhere
ur.removeCallbacks(yourRunnable);