プロジェクトで非常にばかげた問題に直面しており、解決できません。ユーザーの現在の場所を取得するために AsyncTask を使用しています。その中で、1つのカウンターを使用してタイマーとして機能させました。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 条件が機能していません。while の代わりに for ループも試しましたが、それもうまくいきません。また、sysoutを使用してカウンターを印刷すると、正常に機能しますが、機能しないと、非常に奇妙な問題に直面します..
すべての提案を歓迎します。