Welcome

首页 / 移动开发 / Android / Android AsyncTask用法巧用实例代码

Android AsyncTask
联系人导入
 new AsyncTask<ArrayList<ContactInfo>, Integer, ArrayList<ContactInfo>>() {@Overrideprotected void onPreExecute() {super.onPreExecute();if (importingDialog != null)importingDialog.show();}@Overrideprotected 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];}@Overrideprotected void onProgressUpdate(Integer... values) {importingDialog.notifyByteProgress(count, values[0]);}@Overrideprotected 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);}@Overrideprotected 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++;}}}@Overrideprotected 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];}@Overrideprotected void onProgressUpdate(Integer... values) {importingDialog.notifyByteProgress(deleAllCount, values[0]);}@Overrideprotected 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);}}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!