zoukankan      html  css  js  c++  java
  • 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.                    } 
  • 相关阅读:
    Go语言基础练习题系列2
    Go语言基础练习题系列1
    Go语言基础之8--面向对象编程1之结构体(struct)
    Go语言基础之7--函数详解
    分数规划(Bzoj1486: [HNOI2009]最小圈)
    [APIO2018] Circle selection 选圆圈(假题解)
    Bzoj4520: [Cqoi2016]K远点对
    KDTree(Bzoj2648: SJY摆棋子)
    矩阵树定理
    CF235C Cyclical Quest
  • 原文地址:https://www.cnblogs.com/LuoEast/p/8013007.html
Copyright © 2011-2022 走看看