Android:如果用户导航离开当前活动,如何暂停下一个活动的启动?

时间:2012-10-29 13:30:20

标签: android splash-screen

我为我的应用程序创建了一个启动画面。 5秒后,使用以下代码开始下一个活动。现在我的问题是,如果用户在5秒结束之前导航离开当前活动,那么即使我在另一个应用程序或其他任何地方,一旦5秒结束,下一个活动(在我的情况下是InfoActivity)就会出现在前面。 / p>

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.launch);
    new Handler().postDelayed(new Runnable() {

        public void run() {
            final Intent mainIntent = new Intent(LaunchActivity.this, InfoActivity.class);
            LaunchActivity.this.startActivity(mainIntent);
            LaunchActivity.this.finish();
        }
    }, 5000);
}

2 个答案:

答案 0 :(得分:1)

你可以使用变量

shouldNavigate=true;

您在原始活动的onDestroy()方法中取消设置。

onDestroy() {
    shouldNavigate=false;
    [...]
}

在postDelayed-run()方法中,然后检查

if(shouldNavigate) {...}

答案 1 :(得分:0)

这个程序对我有用。

  

flag = false;

runnable = new Runnable() {
    public void run() {

        if(!flag) {
            final Intent mainIntent = new Intent(LaunchActivity.this, InfoActivity.class);
            LaunchActivity.this.startActivity(mainIntent);
            LaunchActivity.this.finish();
            }
        }
    };
handler = new Handler();
handler.postDelayed(runnable, 5000);

onPause() {
super.onPause();
flag = true;
handler.removeCallbacks(runnable);
}

onRestart() {
super.onRestart();
flag = false;
handler.postDelayed(runnable, timeOfPause-timeOfCreate);
}