2016-11-27 11 views
0

私は私のコードでこのタイマーを持っている:Xamarinで実行中のタイマーを取り消す方法はありますか?

  Device.StartTimer(TimeSpan.FromSeconds(100),() => 
      { 
       Device.BeginInvokeOnMainThread(() => 
       { 
        if (detailGrid.IsVisible == true) 
        { 
         getRandomPhase(); 
        } 
       }); 
       return false; 
      }); 

私はが実行されているか、何らかの方法でタイマーを中止からタイマーをキャンセルすることができ(ジェスチャーによる)方法はありますか?

+0

あなたはタイマーを停止したいの?戻り値falseを使用してタイマを停止させる –

+0

代わりにAdvancedTimerを使用する - https://github.com/ufuf/AdvancedTimer – Jason

答えて

2

タイマーコールバックの戻り値は、タイマーを実行し続けるか停止するかを決定するブール値です。プライベート変数を使用すると、タイマーが継続して実行され、コールバックからそれを返す必要があるかどうかを追跡することができます。

ご確認ください。このコードは、より詳細な例を示し、次のブログ記事から取った

private bool _isTimerStart = true; 

      private void StartTimers() 
      { 
       try 
       { 
        Device.StartTimer(new TimeSpan(0, 0, 1),() => 
        { 
         // do some code here 

         return _isTimerStart; 
        }); 
       } 
       catch {} 
      }  private void BtnStart_OnClicked(object sender, EventArgs e) 
      { 
       _isTimerStart = true; 
       StartTimers(); 
      } 

      private void BtnStop_OnClicked(object sender, EventArgs e) 
      { 
       _isTimerStart = false; 
      } 

このサンプル:http://www.c-sharpcorner.com/article/quick-start-tutorial-creating-universal-apps-via-xamarin-device-classcont/

+0

ソリューションの関連部分を参照用にポストにコピーしてください。あなたはまだ著者に信用するためにURLを残すことができます。 – irreal

+0

確認してください。同じものが更新されます –

関連する問題