我为我的应用程序创建了一个启动画面。 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);
}
答案 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);
}