Android:杀死后台活动

时间:2017-05-05 17:43:43

标签: java android back

我有一个包含许多游戏屏幕的应用程序,每个都是自己的活动。其中一些游戏屏幕将使用计时器来启动某些功能。我遇到的问题是当用户退出其中一个游戏屏幕时,计时器仍然在后台运行。我知道这一点,因为当我离开主菜单时,计时器会加载丢失的屏幕,因为计时器和活动仍然在后台进程中运行。如果用户点击手机后退按钮(我没有创建按钮,但设备返回按钮),我只想杀死活动。

这是我用来尝试完成此操作的当前方法:

@Override
public void onBackPressed() {
    super.onBackPressed();
    this.finish();
}

它不会杀死活动。

编辑:

我应该提到停止计时器确实有效但是对于我的一些屏幕,当变量达到一定数量时,输入或输出条件就完成了。例如,我有一个屏幕,当一个敌人逃脱玩家的视图时,一个变量上升1,当这击中5时玩家输了。这不是在计时器上完成的,因此活动仍然在运行,当我不在那个游戏屏幕上时,变量命中5并且加载丢失的屏幕。

2 个答案:

答案 0 :(得分:0)

只有可见的Activity才会收到finish()命令。您需要启动和停止计时器onResumeonPause

答案 1 :(得分:0)

首先,删除

super.onBackPressed();

并添加

yourActivity.this.finish();

如果有帮助,请告诉我:)。