我在我的项目中面临一个非常愚蠢的问题,无法解决。我正在使用 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 打印计数器时,它工作正常,但没有它就无法工作..
欢迎所有建议。