我有一个倒数计时器。在60秒结束时,我开始了一项新活动。它工作正常。但是如果我在倒数计时器结束前按下主页按钮或后退按钮,那么在特定时间之后,即使我在主屏幕中,活动也会自动开始。我使用this.finish()完成了活动;但仍然行不通。请给我一个解决方案。
答案 0 :(得分:0)
您必须根据自己的要求在活动的onPause()/onResume()
或onDestroy()
处理您的计时器。
例如。如果您想简单地停止使用计时器:
timer.cancel()
中的 onDestroy()
类似的东西:
@Override
protected void onDestroy() {
timer.cancel();
super.onDestroy();
答案 1 :(得分:0)
您需要在代码中禁用主页和后退按钮,因为后台线程会继续运行,因此即使您在主屏幕上,您的活动也会启动。 我给你这个代码用于你的活动的主页按钮禁用。
@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
这将在您进行该活动时禁用“主页”按钮。
希望这会对你有所帮助。
答案 2 :(得分:0)
您可以覆盖活动的OnPause事件。当活动被发送回来时,完成它。
@Override
public void onPause(){
super.onPause();
timer.cancel();
this.finish();
}
答案 3 :(得分:0)
当用户按下主页或后退按钮时,计时器线程在后台运行,因此您必须覆盖onDestroy()方法并停止其中的计时器。