1
私がここでやりたいことは、ネットワークがない場合、ネットワークが接続されているかどうかを確認するタイマーが2分ごとにあることです。だから当初は真の反復を繰り返し、ネットワークが接続されるまで無限にループします。ネットワークが接続されるとすぐに、connectionRequestを実行してからrepeatフラグをfalseに設定します。しかし、デバッグ中に、ネットワークが接続されていて、繰り返しフラグがfalseに設定されていても、タイマーは無限に実行されることが分かりました。何故ですか?繰り返しブール値が偽であっても、無限にUiTimerが実行されます
if (!Connectivity.isConnected()) {
Log.p("tracking5 " + "net not connected");
repeatFlag = true;
new UITimer(new Runnable() {
public void run() {
if (Connectivity.isConnected()) {
c.liveTrackConnectionMethod(latitude + "", longitude + "");
repeatFlag = false;
Log.p("tracking6 " + "net connected AND gps data sent within 2 min");
}
Log.p("tracking8 " + repeatFlag + "repeatFlag");
}
}).schedule(120000, repeatFlag, Home.this);
}else {
- - - - - - - -
- - - - - - - -
}
CodenameOneは使用していませんが、ドキュメントを見てくださいUITimerでcancel()を呼び出す必要があると思います。 repeatFlagを設定しても、すでに繰り返し設定されているスケジュールには影響しません。 – Bemmu
Awwwありがとう@Bemmu。 –