Xamarin.Android 使用AsyncTask提示上传动态
我们有时候会通过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提示上传动态的更多相关文章
- Xamarin.Android 压缩图片并上传到WebServices
随着手机的拍照像素越来越高,导致图片赞的容量越来越大,如果上传多张图片不进行压缩.质量处理很容易出现OOM内存泄漏问题. 最近做了一个项目,向webservices上传多张照片,但是项目部署出来就会出 ...
- Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等
仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...
- Android+Spring Boot 选择+上传+下载文件
2021.02.03更新 1 概述 前端Android,上传与下载文件,使用OkHttp处理请求,后端使用Spring Boot,处理Android发送来的上传与下载请求.这个其实不难,就是特别多奇奇 ...
- Xamarin Android设置界面提示类型错误
Xamarin Android设置界面提示类型错误 错误信息:Integer types not allow (at ‘padding’ with value ’10’)Android界面属性的长度和 ...
- Android端通过HttpURLConnection上传文件到服务器
Android端通过HttpURLConnection上传文件到服务器 一:实现原理 最近在做Android客户端的应用开发,涉及到要把图片上传到后台服务器中,自己选择了做Spring3 MVC HT ...
- android+nutz后台如何上传和下载图片
android+nutz后台如何上传和下载图片 发布于 588天前 作者 yummy222 428 次浏览 复制 上一个帖子 下一个帖子 标签: 无 最近在做一个基于android的ap ...
- 解决使用Application Loader上传ipa提示“上传appstore失败”
试了好多次使用Application Loader上传ipa,一直提示上传失败,用其他mac电脑却可以,那就是环境有问题,笔者试过重装xcode,都无法解决问题, 查看日志类似是jdk版本问题,换了所 ...
- Android端通过HttpURLConnection上传文件到server
Android端通过HttpURLConnection上传文件到server 一:实现原理 近期在做Androidclient的应用开发,涉及到要把图片上传到后台server中.自己选择了做Sprin ...
- Android连接socket服务器上传下载多个文件
android连接socket服务器上传下载多个文件1.socket服务端SocketServer.java public class SocketServer { ;// 端口号,必须与客户端一致 ...
随机推荐
- R12 - Error 'Unable to process your transaction. The operating unit is either invalid or it cannot b
In this Document Symptoms Cause Solution Still Have Questions? References APPLIES TO: Orac ...
- 【Unity Shaders】Diffuse Shading——漫反射光照改善技巧
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...
- iOS设备中垂直同步开启后的帧率计数
因为iOS设备的垂直同步总是开启的所以显得帧计数意义没啥意义. 帧计数给你一个多个帧中的平均数,现实中,你帧速率只能是60,30,20,15,12以及6fps等各个常数中的一个.所有这些值都是60的因 ...
- Myexclipse创建Junit测试
. 下载JUnit的jar文件,下载地址在这里 2. 在MyEclipse中新建一个要测试的项目HelloJUnit 3. 添加一个要测试的类HelloJUnit,代码如下,注意需要先建package ...
- linux的link命令
sudo ln -s 源文件 目标文件 sudo ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin 建立软连接 ln -d existfil ...
- 数据结构之---二叉树C实现
学过数据结构的都知道树,那么什么是树? 树(tree)是包含n(n>0)个结点的有穷集,其中: (1)每个元素称为结点(node): (2)有一个特定的结点被称为根结点或树根(root). (3 ...
- Mac OS X汇编语言常识
首先OS X的syscall表位置在 /usr/include/sys/syscall.h
- LeetCode(53)-Binary Tree Paths
题目: Given a binary tree, return all root-to-leaf paths. For example, given the following binary tree ...
- LeetCode(51)- Count and Say
题目: The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 11 ...
- 和菜鸟一起学产品之用户体验设计UED
ps:参考产品经理深入浅出ppt