1

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

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);
}
4

2 回答 2

1

你可以使用一个变量

shouldNavigate=true;

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

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

然后在您的 postDelayed-run()-method 中检查

if(shouldNavigate) {...}
于 2012-10-29T13:35:20.600 回答
0

这个程序对我有用。

标志=假;

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);
}
于 2012-11-01T11:38:00.437 回答