时间:2021-05-21
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); }}感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文总结分析了Android中异步类AsyncTask用法。分享给大家供大家参考,具体如下:最近整理笔记的时候,看到有关AsyncTask不是很理解,重新疏导了
Android中Handler与Message的简单实例前言:虽然笔者已经学习了Android的AsyncTask来实现一部消息的处理。但是在android的学
1、Asynctask简介1.1使用方法简介Asynctask作为Android的基础之一,怎么使用就不多讲解了,网上到处都是教程,建议查看Android官方A
AsyncTask的介绍及基本使用方法关于AsyncTask的介绍和基本使用方法可以参考官方文档和《Android开发笔记之:深入理解多线程AsyncTask》
AndroidAsyncTask详解及使用方法简介:AsyncTask就是一个封装过的后台任务类,顾名思义就是异步任务。AsyncTask,是android提供