我在我的项目中面临一个非常愚蠢的问题,无法解决。我正在使用 AsyncTask 获取用户的当前位置。我使用一个计数器作为计时器。在 doInBackground 内部,我正在递增该计数器,如果它大于 x 值,则我取消异步任务。
这是代码片段: -
class CurrentPositionTask extends AsyncTask<String, Void, Void> {
        long counter = 0;
        boolean flag = true;
        @Override
        public void onPreExecute() {
            // TODO Auto-generated method stub
        }
        @Override
        public Void doInBackground(String... params) {
            // TODO Auto-generated method stub
            do {
                counter++;
                if (latitude != 0 && longitude != 0) {
                    flag = false;
                }
            } while (counter <= 100000);
            return null;
        }
        @Override
        public void onPostExecute(Void result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
        }
    }
但是这里的while条件不起作用。我也尝试了 for 循环而不是 while 但这对我也不起作用。也面临着非常奇怪的问题,当我使用 sysout 打印计数器时,它工作正常,但没有它就无法工作..
欢迎所有建议。