Xamarin.Android 使用Timer 并更改UI

http://blog.csdn.net/ozhangsan12345/article/details/72653070

 

第一步:创建timer对象

 

  1. //创建timer对象  
  2.       Timer _dispatcherTimer;  
  3.       //计数  
  4.       int sec = 60;  


第二步: 实例化timer并给委托事件

 

  1. TimerCallback timerDelegate = new TimerCallback(Tick); //tick为执行防范  
  2. _dispatcherTimer = new Timer(timerDelegate, null, 0, 1000);    

//执行方法

  1. public void Tick(object state)  
  2.       {  
  3.           this.RunOnUiThread(() =>  
  4.           {  
  5.               if (sec > 0)  
  6.               {  
  7.                   smsbt.Text = sec.ToString() + "秒可重发";   
  8.                   sec--;  
  9.               }  
  10.               else  
  11.               {  
  12.                   _dispatcherTimer.Dispose();  
  13.                   sec = 60;  
  14.                   smsbt.Text = "获取验证码";   
  15.   
  16.               }  
  17.           });  
  18.            
  19.       }  

 

//使用

 

    1. {  
    2.                        TimerCallback timerDelegate = new TimerCallback(Tick);  
    3.                        _dispatcherTimer = new Timer(timerDelegate, null, 0, 1000);  
    4.                        ProgressDialog progressDialog = ProgressDialog.Show(this, "", "请稍后...");  
    5.                        new Thread(new ThreadStart(() =>  
    6.                        {  
    7.   
    8.                            string url = this.GetString(Resource.String.url) + "/AppServices/userServices.aspx?action=regSms";  
    9.   
    10.                            using (var http = new HttpClient())  
    11.                            {  
    12.                                var content = new FormUrlEncodedContent(new Dictionary<string, string>() {  
    13.                        { "phone",userphone.Text }  
    14.                            });  
    15.                                var response = http.PostAsync(url, content);  
    16.                                string me = response.Result.Content.ReadAsStringAsync().Result;  
    17.                                progressDialog.Dismiss();  
    18.                                this.RunOnUiThread(() =>  
    19.                                {  
    20.                                HandleResult(me);  
    21.                                });  
    22.                            }  
    23.                        })).Start();  
    24.                    } 
posted @ 2017-12-09 22:38  LuoCore  阅读(241)  评论(0编辑  收藏  举报