第二个 activity 仍然在处理程序上启动,尽管按后退按钮退出应用程序
Second activity is still start on handler although press back button for quiting app
我的应用程序有一个 Introduce activity,它在使用应用程序之前显示进程栏。
pb = (ProgressBar) findViewById(R.id.pb_loader);
final Handler h = new Handler() {
@Override
public void handleMessage(Message message) {
pb.setVisibility(View.INVISIBLE);
Intent it = new Intent(FirstIntroActivity.this, SecondIntroActivity.class);
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(it);
}
};
h.sendMessageDelayed(new Message(), 3000);
但是在我按下 BACK 按钮退出应用程序后,我的 phone 返回到应用程序并转到 SECOND activity(3000 毫秒后)。如何解决这个错误?
替代方法是使用计时器来安排第二个开始时间activity.we可以通过在 OnBackPressed() 回调中取消计时器来取消开始第二个时间activity。
private Timer timer;
@Override
protected void onResume() {
super.onResume();
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// add code to start your second activity
}
}, 2000);
}
@Override
public void onBackPressed() {
timer.cancel();
super.onBackPressed();
}
我的应用程序有一个 Introduce activity,它在使用应用程序之前显示进程栏。
pb = (ProgressBar) findViewById(R.id.pb_loader);
final Handler h = new Handler() {
@Override
public void handleMessage(Message message) {
pb.setVisibility(View.INVISIBLE);
Intent it = new Intent(FirstIntroActivity.this, SecondIntroActivity.class);
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(it);
}
};
h.sendMessageDelayed(new Message(), 3000);
但是在我按下 BACK 按钮退出应用程序后,我的 phone 返回到应用程序并转到 SECOND activity(3000 毫秒后)。如何解决这个错误?
替代方法是使用计时器来安排第二个开始时间activity.we可以通过在 OnBackPressed() 回调中取消计时器来取消开始第二个时间activity。
private Timer timer;
@Override
protected void onResume() {
super.onResume();
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// add code to start your second activity
}
}, 2000);
}
@Override
public void onBackPressed() {
timer.cancel();
super.onBackPressed();
}