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

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

我从原来的模型中得到了扩展,认为我可以比较从单击按钮的时间+ 30秒到再次调用该活动的日期时间。但是到目前为止,我在比较两个android中的日期时间时遇到了麻烦。

有什么帮助吗?

最佳答案

您可能想要的是一个异步任务在后台运行。就像是:

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;
        }

10-02 02:40