我们有时候会通过WebServices上传数据,如果信息量过大并没有提示,用户会觉得是死机,或是系统崩溃,这时候我们可以用到AsyncTask(异步任务)来提示上传信息,例如:正在上传数据...

  这里是官方对AsyncTask的详细文档:https://developer.xamarin.com/api/type/Android.OS.AsyncTask/

  下面是我对AsyncTask的了解:首先实例化继承AsyncTask的类InitTask(当然这里可以随便命名) --> 接着开始执行任务 OnPreExecute 方法 --> 后台执行任务 DoInBackground 方法 -->  执行后返回 OnPostExecute ,简单使用调用这几个方法就足够了,哪里不足希望大佬补充。

using Android.App;
using Android.Widget;
using Android.OS;
using System.Threading; namespace AsyncTaskDemo
{
[Activity(Label = "AsyncTaskDemo", MainLauncher = true)]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
Button btn = FindViewById<Button>(Resource.Id.button1); btn.Click += (s, e) =>
{
new InitTask(this).Execute(); //调用异步任务
};
} //开启一个线程,沉睡10秒,模拟上传数据
void TestThead()
{
Thread.Sleep();
} private class InitTask : AsyncTask<Java.Lang.Void, Java.Lang.Void, string[]>
{ MainActivity main;
ProgressDialog proDialg = null; public InitTask(MainActivity _main)
{
main = _main;
} protected override string[] RunInBackground(params Java.Lang.Void[] @params)
{
//throw new NotImplementedException ();
return null;
} //后台要执行的任务
protected override Java.Lang.Object DoInBackground(params Java.Lang.Object[] @params)
{
main.TestThead();
return "OK";
} //执行后返回
protected override void OnPostExecute(Java.Lang.Object result)
{
proDialg.Cancel();
if (result.ToString() != "OK")
Toast.MakeText(main, "获取数据失败!", ToastLength.Short);
} //开始执行任务
protected override void OnPreExecute()
{
proDialg = new ProgressDialog(main);
proDialg.SetProgressStyle(ProgressDialogStyle.Spinner);
//设置界面不可操作 返回键有效
//proDialg.SetCanceledOnTouchOutside(false);
proDialg.SetMessage("正在上传数据...");
//设置界面不可操作 返回键无效
proDialg.SetCancelable(false);
proDialg.Show();
}
}
}
}

最后附上下载地址:

  链接: https://pan.baidu.com/s/1u5TNukLQH5ycjBMWs4ZzLg

  密码: w7q6

Xamarin.Android 使用AsyncTask提示上传动态的更多相关文章

  1. Xamarin.Android 压缩图片并上传到WebServices

    随着手机的拍照像素越来越高,导致图片赞的容量越来越大,如果上传多张图片不进行压缩.质量处理很容易出现OOM内存泄漏问题. 最近做了一个项目,向webservices上传多张照片,但是项目部署出来就会出 ...

  2. Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等

    仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...

  3. Android+Spring Boot 选择+上传+下载文件

    2021.02.03更新 1 概述 前端Android,上传与下载文件,使用OkHttp处理请求,后端使用Spring Boot,处理Android发送来的上传与下载请求.这个其实不难,就是特别多奇奇 ...

  4. Xamarin Android设置界面提示类型错误

    Xamarin Android设置界面提示类型错误 错误信息:Integer types not allow (at ‘padding’ with value ’10’)Android界面属性的长度和 ...

  5. Android端通过HttpURLConnection上传文件到服务器

    Android端通过HttpURLConnection上传文件到服务器 一:实现原理 最近在做Android客户端的应用开发,涉及到要把图片上传到后台服务器中,自己选择了做Spring3 MVC HT ...

  6. android+nutz后台如何上传和下载图片

    android+nutz后台如何上传和下载图片  发布于 588天前  作者 yummy222  428 次浏览  复制  上一个帖子  下一个帖子  标签: 无 最近在做一个基于android的ap ...

  7. 解决使用Application Loader上传ipa提示“上传appstore失败”

    试了好多次使用Application Loader上传ipa,一直提示上传失败,用其他mac电脑却可以,那就是环境有问题,笔者试过重装xcode,都无法解决问题, 查看日志类似是jdk版本问题,换了所 ...

  8. Android端通过HttpURLConnection上传文件到server

    Android端通过HttpURLConnection上传文件到server 一:实现原理 近期在做Androidclient的应用开发,涉及到要把图片上传到后台server中.自己选择了做Sprin ...

  9. Android连接socket服务器上传下载多个文件

    android连接socket服务器上传下载多个文件1.socket服务端SocketServer.java public class SocketServer { ;// 端口号,必须与客户端一致 ...

随机推荐

  1. Dynamics CRM Form表单中通过javascript抓取触发change事件字段的属性名

    通过下面这段代码可以抓取到change的事件源,从而判断出是哪个属性字段触发的事件, function change(pContext) {var fieldName=pContext.getEven ...

  2. 《java入门第一季》之Date类案例,算一算你的恋爱纪念日

    想算你和你对象谈了多久了,还在用笔算吗,是不是很头疼?写个程序算一算吧!会变得如此简单. import java.text.ParseException; import java.text.Simpl ...

  3. 从"按层次输出二叉树"到"求解二叉树深度"的总结

    本文是在学习中的总结,欢迎转载但请注明出处:http://write.blog.csdn.net/postedit/41964669 最近在刷LeetCode上的算法题,发现好多题目的解题思路大体是一 ...

  4. DBUtils学习总结

    这几天闲着无聊,就看了一下DBUtils这个数据库组件.中间有了一些想法,现在记录下来. 文章主要分几部分 1 最简单同时也是最经常使用的一些范例 2 学习源码前的一些知识储备 3 我自己写的mydb ...

  5. Android官方技术文档翻译——新构建系统概述

    本文译自Android官方技术文档<New Build System>,原文地址:http://tools.android.com/tech-docs/new-build-system. ...

  6. shell-like program(shell程序的基本实施部分)

    直接上代码: #include "apue.h" #include <sys/wait.h> int main(void) { char buf[MAXLINE]; / ...

  7. Linux - 停机常用的anacron

    什么是 anacron anacron 并不是用来取代 crontab 的,anacron 存在的目的就在於我们上头提到的,在处理非 24 小时一直启动的 Linux 系统的 crontab 的运行! ...

  8. OpenCV stereo matching 代码 matlab实现视差显示

    转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/44151213, 来自:shiter编写程序的艺术 基础知识 计算机视觉是一门研究 ...

  9. C语言在linux内核中do while(0)妙用之法

    为什么说do while(0) 妙?因为它的确就是妙,而且在linux内核中实现是相当的妙,我们来看看内核中的相关代码: #define db_error(fmt, ...) \ do { \ fpr ...

  10. Java反编译工具(Java Decompiler)

    Java Decompiler是一种非常实用的JAVA反编译工具,可以对整个jar包进行反编译,也可以将其集成到eclipse上,非常方便的根据class文件的源码.,官网地址http://jd.be ...