Android AsyncTask
联系人导入
new AsyncTask, Integer, ArrayList >() { @Override protected void onPreExecute() { super.onPreExecute(); if (importingDialog != null) importingDialog.show(); } @Override protected ArrayList doInBackground(ArrayList ... 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 contactInfos) { final ArrayList names = new ArrayList (); final ArrayList numbers = new ArrayList (); 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 ());