Message基于Android 6.0
来源:互联网 发布:通达oa2016源码反编译 编辑:程序博客网 时间:2024/05/16 12:53
Messaing模块
解决messaging代码不对应问题:修改messaging的mk文件删除(个人的mk不一样,相应也不一样)
-LOCAL_PROGUARD_FLAGS:= -ignorewarnings -include build/core/proguard_basic_keeps.flags
-LOCAL_PROGUARD_ENABLED:= nosystem
-ifeq(eng,$(TARGET_BUILD_VARIANT))
- LOCAL_PROGUARD_FLAG_FILES += proguard-test.flags
-else
- LOCAL_PROGUARD_FLAG_FILES += proguard-release.flags
-endif
LauncherActivity是ConversationListActivity在
conversationListFragment=(ConversationListFragment)getFragmentManager().findFragmentById(R.id.conversation_list_fragment);
跳转到ConversationListFragment
在ConversationListFragment的onAttach()方法中
创建了ConversationListData
在这个ConversationListData类中
通过这个方法去创建一个Loader,这个Loader会去数据库查询,这个Loader中包含查询返回的cursor
当查询结束后执行
onLoadFinished()方法
case CONVERSATION_LIST_LOADER:
mListener.onConversationListCursorUpdated(this,data);
设置监听器
实现这监听器的方法在
ConversationListFragment这个类的
onConversationListCursorUpdated()方法中
在这个方法中执行
CursoroldCursor =mAdapter.swapCursor(cursor);
会去替换新旧cursor,然后注销和登记相应的监听器
在他的
这个init()方法中初始化Loader
在onCreateView方法中
初始化控件,设置监听器
设置监听器
监听器方法在这个AbstractConversationListActivity类中,最后startActivity
ConversationActivity
在onCreate方法中
updateUiState(false/* animate */);这个方法中判断进入
ContactPickerFragment
或者
conversationFragment
当然这里是进入的是
ContactPickerFragment
在这个Fragment中、
ContactRecipientAutoCompleteView这个是收件人输入框
CustomHeaderViewPager选择所有联系人或者常用联系人的Viewpager
AllContactsListViewHolder所有联系人
FrequentContactsListViewHolder常用联系人
加载AllContactsListViewHolder和FrequentContactsListViewHolder中的联系人的方法
在ContactPickerFragment的Oncreate()方法中:
mBinding.bind(DataModel.get().createContactPickerData(getActivity(),this));
mBinding.getData().init(getLoaderManager(),mBinding);
这个方法首先会去创建一个ContactPickerData类,然后初始化初始化的方法
在这个方法中初始化Loader,会去查询数据,初始化完成后会去回调一个方法
在这个设置了一个监听器mListener.onAllContactsCursorUpdated(data);
在ContactPickerFragment中实现这个方法
在这个方法中mListAdapter.swapCursor(data);新旧cursor的替换
最终在AllContactsListViewHolder这个类中的父类CustomHeaderPagerListViewHolder
实现ListView和CursorAdapter实现数据的显示,这个CursorAdapter是ContactListAdapter
在AllContactsListViewHolder的构造方法中创建的
FrequentContactsListViewHolder与AllContactsListViewHolder数据加载和显示类似
再来看这个ContactListAdapter的
这个ContactListItemView其实就是这个ListView中的其中一个View
在这个ContactListItemView中的
这个监听器在ContactPickerFragment的如下方法中实现
mRecipientTextView.appendRecipientEntry(item.getRecipientEntry());这个方法就是在收件人处添加收件人
在mRecipientTextView的监听:监听状态变化
maybeGetOrCreateConversation();这个方法是去加载这个与收件人之间的短信
mHost.onParticipantCountChanged(ContactPickerData.getCanAddMoreParticipants(newCount));//这个方法最终执行ConversationActivity中的
privatevoid updateUiState(finalboolean animate) {
在这个方法中跳转到ConversationFragment
在这个ConversationFragment中
privateComposeMessageViewmComposeMessageView;//发送和编辑短信的框
privateRecyclerViewmRecyclerView;//来往信件
privateConversationMessageAdaptermAdapter;
在这个ComposeMessageView中发送按钮
发送流程:
UiccSmsController,在这个类中添加了service,并且这个类继承了ISms.Stub,即这个aidl接口类,这个UiccSmsController类其实就是service返回的binder对象,至于这个对象在哪个绑定的,还没有查出来,
- Message基于Android 6.0
- Message基于Android 6.0
- Android--基于Message的进程间通信
- Android 基于Message的进程间通信
- Android 基于Message的进程间通信 Messenger完全解析
- Android 基于Message的进程间通信 Messenger完全解析
- Android 基于Message的进程间通信 Messenger完全解析
- Android 基于Message的进程间通信 Messenger完全解析
- Android 基于Message的进程间通信 Messenger完全解析
- Android 基于Message的进程间通信 Messenger完全解析
- Android 基于Message的进程间通信 Messenger完全解析
- Android 基于Message的进程间通信 Messenger完全解析
- Android 基于Message的进程间通信 Messenger完全解析
- Android 基于Message的进程间通信 Messenger完全解析
- Android Message
- android message
- 基于Message Loop的读书笔记
- Android多线程之Handler、Looper、Message在基于HTTP系统中的应用
- 研考完事了
- yarn 配置log4j日志输出
- mysql-sql高级应用
- oracle 向表中插入BLOB类型数据
- 【opencv 官方教程】翻译5 视频输入输出
- Message基于Android 6.0
- JAVA面向对象程序设计(1)
- ML_note:Regularization
- ListView 属性探究
- C++Primer第五版 第四章习题答案(31~38)
- jenkins的简单使用
- Spring boot+Spring Security 4配置整合实例
- crontab定时任务
- Objective-C语言中的数据类型