public static List<TxrjThreads> getThreads(Context context)
解析获取Threads列表之要点:
1. 得到带有fail信息的threadId列表。
List<Integer> failedIds = getFailedMsgThreadIds(context);
2. 得到带有draft信息的threadId列表。
List<Integer> draftIds = getDraftMsgThreadIds(context);
3. 从数据库表threads中查询数据。
Cursor cursor = context.getContentResolver().query(Telephony.Sms.CONTENT_URI,
new String[] {"* from threads order by date desc--"},
null, null, null);
4. 获取threadId相应的未读信息条数。
getUnreadMsgCountByThreadId(context,thread.getThreadId())
5. 获取recipient_ids相应的名字和号码。
getNameAddressForRecipients(context, thread.getRecipientId())
6. 总结getThreads方法需要做的事情。
A. 从数据库表threads中查询snippet, message_count, date, recipient_ids, read, threadId。
B. 从sms表中找出未读信息。
C. 从sms表中找出草稿信息。
D. 从canonical_addresses表中找出recipient的address(号码)。
E. 从contact2数据库data表中查找出address对应的Name。