2017-05-05 183 views
0

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

这是当前的方法我用它来尝试实现这一目标:

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

它不会杀死活性。

编辑:

我应该指出,停止计时器的工作,但我的一些屏幕的输赢时可变打一定数量的条件下完成。例如,我有一个屏幕,当敌人逃离玩家的视线时,当这个命中5时,变量增加1,玩家失去。这不是在一个计时器上完成的,因为活动仍在运行,变量点击5,并且当我不在该游戏屏幕上时加载丢失屏幕。

+0

检查更新回答。 –

回答

0

只有可见的Activity将收到finish()命令。你需要启动和停止计时器onResume

0

首先,去除

super.onBackPressed(); 

并添加

yourActivity.this.finish(); 

让我知道如果这能帮助:)

+0

它无法解决完成。 –

+0

对不起,我的不好()。我已经更新了答案 –

+0

没有得到调用我不认为 –