欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android AsyncTask用法巧用實例代碼

 更新時間:2017年01月21日 08:47:38   投稿:lqh  
這篇文章主要介紹了Android AsyncTask用法巧用實例代碼的相關資料,需要的朋友可以參考下

Android AsyncTask

聯(lián)系人導入

 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>());

聯(lián)系人刪除

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;//總數(shù)
  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()) {
        //刪除聯(lián)系人
        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定時器Timer的停止和重啟實現(xiàn)代碼

    Android定時器Timer的停止和重啟實現(xiàn)代碼

    本篇文章主要介紹了Android實現(xiàn)定時器Timer的停止和重啟實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Android高仿2048小游戲實現(xiàn)代碼

    Android高仿2048小游戲實現(xiàn)代碼

    這篇文章主要介紹了Android高仿2048小游戲實現(xiàn)代碼的相關資料,非常不錯具有一定的參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • Android EditText密碼的隱藏和顯示功能

    Android EditText密碼的隱藏和顯示功能

    這篇文章主要介紹了Android EditText密碼的隱藏和顯示功能的相關資料,主要是利用EditText和CheckBox 來實現(xiàn)該功能,需要的朋友可以參考下
    2017-07-07
  • android4.0混淆XmlPullParser報錯原因分析解決

    android4.0混淆XmlPullParser報錯原因分析解決

    今天,用android4.0在proguard-project.txt中加入 -libraryjars libs/ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar這句話后,混淆時報上面的錯誤,下面與大家分享下具體的解決方法
    2013-06-06
  • Android Studio 中獲取屏幕寬度實例

    Android Studio 中獲取屏幕寬度實例

    這篇文章主要介紹了Android Studio 中獲取屏幕寬度實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android使用開源框架ANDROID-IMAGE-INDICATOR實現(xiàn)圖片輪播部署

    Android使用開源框架ANDROID-IMAGE-INDICATOR實現(xiàn)圖片輪播部署

    這篇文章主要為大家詳細介紹了Android使用開源框架ANDROID-IMAGE-INDICATOR實現(xiàn)圖片輪播部署,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android自定義仿ios加載彈窗

    Android自定義仿ios加載彈窗

    這篇文章主要為大家詳細介紹了Android自定義仿ios加載彈窗,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Android利用軟引用和弱引用避免OOM的方法

    Android利用軟引用和弱引用避免OOM的方法

    Java從JDK1.2版本開始,就把對象的引用分為四種級別,從而使程序能更加靈活的控制對象的生命周期。這四種級別由高到低依次為:強引用、軟引用、弱引用和虛引用。本文給大家介紹Android利用軟引用和弱引用避免OOM,需要的朋友一起學習吧
    2016-04-04
  • Android編程之在SD卡上進行文件讀寫操作實例詳解

    Android編程之在SD卡上進行文件讀寫操作實例詳解

    這篇文章主要介紹了Android編程之在SD卡上進行文件讀寫操作的方法,結合實例形式較為詳細的分析了Android的文件操作及針對SD卡的存取操作相關技巧,需要的朋友可以參考下
    2015-12-12
  • Android百度地圖之方向感應和模式更改

    Android百度地圖之方向感應和模式更改

    這篇文章主要為大家詳細介紹了Android百度地圖之方向感應和模式更改,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評論