原创 contact 結果顯示

7.結果顯示    問題:1,加載聯繫人時,聯繫人前面有 A,B,C等等,查詢時的結果都沒有        2,聯繫人前面ABC的大寫字母顏色不一樣        3,加載聯繫人僅顯示姓名,Dialer查詢時還會顯示號碼,Contacts

原创 ContactSaveService分析

3.3 ContactSaveService ContactSaveService類繼承自IntentService,實現了onHandleIntent方法。當然,另開一個子線程執行異步任務,主要對聯繫人(包括手機聯繫人和SIM卡聯繫人)

原创 聯繫人導入導出分析

4,導入導出 單卡的導入導出界面如下, 導出到SIM卡的過程界面如下, 在聯繫人主界面(PeopleActivity)點擊右上角的導入導出菜單, 就會出現界面1, PeopleActivity 的onOptionsItemSelec

原创 contact 基礎知識總結與類圖

4.基礎知識總結與類圖 三要素基本關係如下: Fragment(Activity),LoaderManager, AsyncLoader等類 Fragment 1,創建並且管理LoaderManager:    getLoaderMa

原创 Dialer 聯繫人加載

2,聯繫人加載 聯繫人加載主要是Dialer中的聯繫人加載,界面如下, 界面對應的Fragment爲AllContactsFragment,在ListsFragment的內部類ViewPagerAdapter的getItem方法部分代

原创 撥號盤搜索聯繫人數據庫更新分析 --- 之一

1,撥號盤搜索聯繫人數據庫更新 在論述撥號盤搜索聯繫人之前,首先看下dialer.db數據庫的更新, dialer.db數據庫路徑如下, 一般在data/data 目錄下。dialer.db 數據庫有4個表單, 主要看smartdi

原创 通話記錄分析 --- 刪除 之一

1.6 批量刪除 在CallLogActivity中進入批量刪除界面的onOptionsItemSelected方法如下, case R.id.delete_all: onDeleteCallLog(); return

原创 通話記錄分析 --- 刪除 之二

6.2刪除通話記錄 當點擊確認按鈕時,就開始刪除選擇的通話記錄。 MultiPickContactActivity的onClick對MODE_DEFAULT_CALL模式處理如下, showDialog(DIALOG_DEL_CALL)

原创 撥號盤搜索聯繫人數據庫更新分析 --- 之二

1.2 insertNamePrefixes DialerDatabaseHelper的insertNamePrefixes方法調用流程圖如下, insertNamePrefixes方法主要邏輯如下, 1,從smartdial_tab

原创 查詢關鍵代碼解析

5,查詢關鍵代碼解析 bindView ( ) ContactEntryListAdapter.java               疑惑1: 在bindView( )函數中,直接將itemView 直接轉化爲 ContactListIt

原创 MultiPickContactActivity 分析 --- 之二

3.3選擇 有2種選擇方式,逐條選擇和全選。 逐條選擇時,會調用onListItemClick方法,MultiPickContactActivity的onListItemClick方法邏輯如下, 1,獲取CheckBox的選取狀態, Ch

原创 新建聯繫人分析

3,聯繫人編輯 3.1 新建聯繫人 新建聯繫人界面如下, 對應的activity爲CompactContactEditorActivity,在CompactContactEditorActivity的onCreate方法中, mFra

原创 MultiPickContactActivity 分析 --- 之一

4.3 MultiPickContactActivity 首先,這個類長達2000多行,寫的的確好。主要是將幾個相似的功能合在一起,因此使用了大量的if選擇。在AndroidManifest.xml中,有關 MultiPickContac

原创 刪除聯繫人分析

3.2 刪除聯繫人 Contacts相關模塊中,有很多地方可以刪除聯繫人,並且有單個刪除聯繫人也有多個刪除聯繫人。以QuickContactActivity爲例論述刪除單個聯繫人的詳細流程, QuickContactActivity的界面

原创 數據庫中同步SIM卡聯繫人

4.2 同步聯繫人 當重新插入SIM卡時, SimContactsService 的onCreate方法內的匿名Handler的handleMessage方法對應的處理如下, case MSG_SIM_REFRESH: ••• if (m