使用onPause()/ onResume()来暂停/恢复迷你游戏的计时器?

时间:2014-12-14 01:20:21

标签: java android timer onresume onpause

所以情况就是这样。 我一直在为Android制作一个小游戏,这个游戏有一个计时器,倒计时从60到0。

http://postimg.org/image/5kcbo7t49/

当您单击暂停按钮(II)时,它会显示一个用作暂停的对话框,计时器应该停止,当然,当您单击继续时,它应该继续。

http://postimg.org/image/j2j80i59l/

我的问题是,即使Dialog弹出时计时器仍然工作,我认为我可以停止onPause()方法的计时器,但我读到对话框没有调用onPause方法,因为它们不一定是活动。 所以,我的问题是,我可以使用什么来使我的活动调用onPause()和onResume()?我应该使用不同于对话框的东西吗?如果是的话,我可以使用什么?或者我可以强制onPause / OnResume以某种方式激活并且方便吗?

这里有一些代码:

暂停按钮的代码。只需调用暂停对话框。

_Btn_Pause.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                GameManager.createDialogPause(_Activity, _Activity);
            }
        });

暂停和恢复方法的代码。

protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        _C.cancel();
        _TimeReady = 4;
        _StartGame = false;
    }

    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        setGame();
    }
public void setGame() {
    _C.scheduleAtFixedRate(_GameTimer, 1000, 1000);
}

1 个答案:

答案 0 :(得分:0)

由于您将Activity上下文传递给Dialog,因此可以使用它来获取Activity并调用方法来停止/恢复计时器。

YourActivityName activity = (YourActivityName) _Activity;
activity.pause_timer()  //Or call onPause() onResume()