每30秒给一个变量一个值

时间:2011-09-13 04:57:21

标签: java android eclipse

在android中,如果单击一个按钮,我想要倒计时从30开始,倒计时到0.我创建了一个带有基本倒计时方法的代码,但问题是如果活动或应用程序关闭,它不会继续倒计时。

我想要做的是活动或只是倒计时在后台继续滴答,直到它达到0,它会将变量B更改为值1。

我已经从原始模型扩展,我可以比较从点击按钮+ 30秒到再次调用活动的日期时间。但到目前为止,我已经在比较android中的两个日期时间了。

任何帮助?

3 个答案:

答案 0 :(得分:1)

您可能需要的是在后台运行的异步任务。类似的东西:

private class JohnnysPollTask extends AsyncTask<Integer, Void, Integer> {
        /**
         * The system calls this to perform work in a worker thread and delivers
         * it the parameters given to AsyncTask.execute()
         */
        protected Integer doInBackground(Integer... millis) {
            try {
                int waited = 0;         
                                int duration = 30000;
                while (waited < duration) {
                    Thread.sleep(1000);
                    waited += 1000;

                    if (waited>=duration) {
                        b=1;
                        break;
                    }
                }
            } catch (InterruptedException e) {
                // do nothing
            }

            return 1;
        }

答案 1 :(得分:0)

您可以尝试使用服务而不是活动。

答案 2 :(得分:0)

实施CountDownTimer

service内。