2017-08-27 18 views
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 { 
    - - - - - - - - 
    - - - - - - - - 
} 
+1

CodenameOneは使用していませんが、ドキュメントを見てくださいUITimerでcancel()を呼び出す必要があると思います。 repeatFlagを設定しても、すでに繰り返し設定されているスケジュールには影響しません。 – Bemmu

+0

Awwwありがとう@Bemmu。 –

答えて

0

リピートフラグはtrueに設定されています。 scheduleを呼び出した後に変更すると、影響がないことに注意してください。

関連する問題