private void Btn_Click(object sender, EventArgs e){    var u = FindViewById<EditText>(Resource.Id.editText1).Text;    var p = FindViewById<EditText>(Resource.Id.editText2).Text;    var progressDialog = ProgressDialog.Show(this, "Please wait...", "Checking account info...", true);    var t=new Thread(new ThreadStart(delegate    {        var r = Api.CheckUser(u, p);        if (r.HasValue)        {            RunOnUiThread(() => progressDialog.Hide());            AppConfig.Config.SetNowUserId(r.Value);            StartActivity(typeof(MainActivity));            Finish();        }        else        {            RunOnUiThread(() => Toast.MakeText(this, "用户名或密码错误", ToastLength.Long).Show());            RunOnUiThread(() => progressDialog.Hide());        }                    }));    t.Start();}

把loading框显示出来,然后开新线程做事,之后关闭loading框。

因为是开新线程,所以如果希望更新界面,需要使用 RunOnUiThread方法

还有另外的方式

private readonly TaskScheduler uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();
private void Btn_Click(object sender, EventArgs e){    var u = FindViewById<EditText>(Resource.Id.editText1).Text;    var p = FindViewById<EditText>(Resource.Id.editText2).Text;    var progressDialog = ProgressDialog.Show(this, "Please wait...", "Checking account info...", true);    Task.Factory.StartNew(() =>    {        return Api.CheckUser(u, p);    }).ContinueWith(r =>    {        progressDialog.Hide();        if (r.Result.HasValue)        {            AppConfig.Config.SetNowUserId(r.Result.Value);            StartActivity(typeof(MainActivity));            Finish();        }        else        {            Toast.MakeText(this, "用户名或密码错误", ToastLength.Long).Show();        }                    }, uiScheduler);}

使用Task的ContinueWith,可以指定在ui上执行

访问网络需要给permission,在项目属性里,Android Manifest 下面列出了所有的permission,打钩internet

更多相关文章

  1. android 通过handler实现异步处理
  2. 看完这篇,再也不怕被问到AsyncTask的原理
  3. Android(安卓)AudioTrack实时播放
  4. Android(安卓)Socket网络通信
  5. android那点事
  6. android 中的 Handler Thread Runnable 的理解
  7. android蓝牙开发————实现服务端客户端通信
  8. Android输入管理服务启动过程源码分析
  9. android中的runOnUiThread(runnable)

随机推荐

  1. TensorFlow在Android平台上的安装和应用
  2. [置顶] Android中的XML解析与生成——DOM
  3. Android(安卓)8.1 系统按键音
  4. 「mo包」Talk:從 Apps 看 Android(安卓)手
  5. Android中使用百度地图时定位到当前位置
  6. Android实现iPhone晃动撤销输入功能 Andr
  7. android注册 登录+修改帐号密码+添加资料
  8. 实现android的增量更新
  9. 增加 Andorid手機電池續航力 ,一定有效的
  10. Android实现通过浏览器点击链接打开本地