Android AsyncTask用法巧用实例代码
发布时间 - 2026-01-10 22:41:17 点击率:次Android AsyncTask

联系人导入
new AsyncTask<ArrayList<ContactInfo>, Integer, ArrayList<ContactInfo>>() {
@Override
protected void onPreExecute() {
super.onPreExecute();
if (importingDialog != null)
importingDialog.show();
}
@Override
protected ArrayList<ContactInfo> doInBackground(ArrayList<ContactInfo>... params) {
int importCount = 0;
for (ContactInfo member : importListContact) {
if (member.isCheck()) {
importCount++;
contactInsertHelper.insertSysContacts2Xphone(member);
params[0].add(member);
publishProgress(importCount);
}
}
return params[0];
}
@Override
protected void onProgressUpdate(Integer... values) {
importingDialog.notifyByteProgress(count, values[0]);
}
@Override
protected void onPostExecute(ArrayList<ContactInfo> contactInfos) {
final ArrayList<String> names = new ArrayList<String>();
final ArrayList<String> numbers = new ArrayList<String>();
for (ContactInfo contactInfo : contactInfos) {
for (int i = 0; i < contactInfo.getPhones().size(); i++) {
numbers.add(contactInfo.getPhones().get(i).replaceAll(" ", ""));
names.add(contactInfo.getName());
}
}
Intent intent = new Intent("com.godinsec.importcomplete");
intent.putStringArrayListExtra("numbers", numbers);
intent.putStringArrayListExtra("names", names);
ImportContactActivity.this.sendBroadcast(intent);
Intent updateIntent = new Intent("com.godinsec.update.syscontacts");
ImportContactActivity.this.sendBroadcast(updateIntent);
handler.sendEmptyMessage(0);
}
}.execute(new ArrayList<ContactInfo>());
联系人删除
new LauncherContactDeleAsyncTask(mActivity, contactInfosDeles).execute(new ArrayList<String>());
package com.godinsec.contacts.core;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import com.godinsec.contacts.R;
import com.godinsec.contacts.contactHelper.ContactInsertHelper;
import com.godinsec.contacts.db.ApplicationSQLManger;
import com.godinsec.contacts.dialog.ImportingDialog;
import com.godinsec.contacts.model.ContactInfo;
import java.util.ArrayList;
/**
* Created by Safly on 2016/9/23.
*/
public class LauncherContactDeleAsyncTask extends AsyncTask<ArrayList<String>, Integer, ArrayList<String>> {
private Context mContext = null;
private ArrayList<ContactInfo> deleteListContacts;//总数
private ContactInsertHelper contactInsertHelper;
final ArrayList<String> deleContactPhones = new ArrayList<>();
private ImportingDialog importingDialog = null;
int deleCount = 0;
int deleAllCount = 0;
public LauncherContactDeleAsyncTask(Context mContext, ArrayList<ContactInfo> contactInfos) {
this.mContext = mContext;
this.deleteListContacts = contactInfos;
contactInsertHelper = new ContactInsertHelper(mContext);
}
@Override
protected void onPreExecute() {
super.onPreExecute();
importingDialog = new ImportingDialog(mContext,mContext.getResources().getString(R.string.gsettings_dele_contacts));
importingDialog.setCanceledOnTouchOutside(false);
if (importingDialog != null){
importingDialog.show();
}
for (ContactInfo member : deleteListContacts) {
if (member.isCheck()) {
deleAllCount++;
}
}
}
@Override
protected ArrayList<String> doInBackground(ArrayList<String>... params) {
for (ContactInfo member : deleteListContacts) {
if (member.isCheck()) {
//删除联系人
long contactServerFlag = ApplicationSQLManger.getInstance().getContactServerFlagByLauncherContact(mContext, member);
params[0].add(String.valueOf(contactServerFlag));
deleCount += contactInsertHelper.delete(mContext, member);
//传递要删除的号码
for (String phone : member.getPhones()) {
if (deleContactPhones != null) {
deleContactPhones.add(phone);
}
}
publishProgress(deleCount);
}
}
return params[0];
}
@Override
protected void onProgressUpdate(Integer... values) {
importingDialog.notifyByteProgress(deleAllCount, values[0]);
}
@Override
protected void onPostExecute(ArrayList<String> contactIds) {
super.onPostExecute(contactIds);
if (importingDialog.isShowing()) {
importingDialog.dismiss();
}
Intent updateIntent = new Intent("com.godinsec.update.syscontacts");
mContext.sendBroadcast(updateIntent);
Intent intent = new Intent("com.godinsec.delcontact");
intent.putStringArrayListExtra("numbers", deleContactPhones);
mContext.sendBroadcast(intent);
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# AsyncTask
# AsyncTask详解
# AsyncTask实例代码
# Android AsyncTask实现异步处理任务的方法详解
# Android使用AsyncTask下载图片并显示进度条功能
# Android AsyncTask的优缺点详解
# android使用AsyncTask实现多线程下载实例
# Android中使用AsyncTask做下载进度条实例代码
# Android AsyncTask使用以及源码解析
# Android中使用AsyncTask实现文件下载以及进度更新提示
# Android AsyncTask详解及使用方法
# 希望能
# 谢谢大家
# onPostExecute
# count
# notifyByteProgress
# String
# final
# contactInfos
# values
# add
# insertSysContacts2Xphone
# contactInsertHelper
# onProgressUpdate
# return
# publishProgress
# names
# importcomplete
# godinsec
# intent
# sendBroadcast
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速上传自定义模板至建站之星?
,网页ppt怎么弄成自己的ppt?
Python函数文档自动校验_规范解析【教程】
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何快速查询网址的建站时间与历史轨迹?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区
如何在橙子建站上传落地页?操作指南详解
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
phpredis提高消息队列的实时性方法(推荐)
Laravel中的Facade(门面)到底是什么原理
用yum安装MySQLdb模块的步骤方法
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
如何在阿里云虚拟服务器快速搭建网站?
如何获取PHP WAP自助建站系统源码?
Laravel Fortify是什么,和Jetstream有什么关系
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
Java解压缩zip - 解压缩多个文件或文件夹实例
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
深入理解Android中的xmlns:tools属性
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
Laravel如何自定义分页视图?(Pagination示例)
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
Laravel怎么使用Intervention Image库处理图片上传和缩放
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
iOS中将个别页面强制横屏其他页面竖屏
PHP正则匹配日期和时间(时间戳转换)的实例代码
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
如何在服务器上配置二级域名建站?
Java垃圾回收器的方法和原理总结
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
如何选择PHP开源工具快速搭建网站?
Laravel如何为API编写文档_Laravel API文档生成与维护方法
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
如何用好域名打造高点击率的自主建站?
网站图片在线制作软件,怎么在图片上做链接?
如何在橙子建站中快速调整背景颜色?
如何彻底卸载建站之星软件?
如何在阿里云ECS服务器部署织梦CMS网站?
如何在阿里云虚拟主机上快速搭建个人网站?
js代码实现下拉菜单【推荐】
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何在万网自助建站平台快速创建网站?
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
上一篇: 西安网站托管公司,办托管班赚钱吗?
上一篇: 西安网站托管公司,办托管班赚钱吗?

