高通android 7.0新建短信流程

原创 2017年09月13日 14:45:04
在短信列表,点击新建短信按钮,进入新建短信流程。
ConversationList.java

public void createNewMessage() {
        startActivity(ComposeMessageActivity.createIntent(this, 0));
    }
新建和打开已有的的区别是传递进去的threadId不一样,新建的threadId为0,也就是数据库中并没有记录。

ComposeMessageActivity.java
onCreate

Window window = ComposeMessageActivity.this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
设置短信的系统bar,状态栏等的背景是透明的,所以最终效果是跟短信背景一体化。

initResourceRefs();初始化资源,里面具体内容读者自己查看,无非就是调用findViewById来获取控件

mBackgroundQueryHandler = new BackgroundQueryHandler(mContentResolver);这个是用来后台查询数据的

initialize(savedInstanceState, 0);初始化数据
我们主要来看initialize
mWorkingMessage = WorkingMessage.createEmpty(this);创建一个空的WorkingMessage,前面我们说过了,WorkingMessage表示一个正在编辑的短信

initActivityState(savedInstanceState);主要根据传递进来的Intent,来分析处理,对于新建短信,并没有什么需要加载的。后面分析

initMessageList();初始化短信历史列表

if (mConversation.getThreadId() <= 0//新建短信的threadId就是为0,所以走if分支
                && (!mConversation.isGroupChat() || mConversation.getGroupChat() == null)) {
            // Hide the recipients editor so the call to initRecipientsEditor won't get
            // short-circuited.
            hideRecipientEditor();//收件人编辑框只有在新建短信的场景下才会有
            initRecipientsEditor();//初始化收件人编辑框
            updateColorPalette(sPrimaryColorDark);
            setActionBarColor(sPrimaryColorDark);
        } else {
            hideRecipientEditor();
        }

updateSendButtonState();更新发送按钮状态,只有收件人和短信发送内容都有的情况下,且短信可用,默认短信,sim卡可用的情况下,发送按钮才会enable

drawTopPanel(false);//这里的topPanel,是我们添加彩信附件的时候,会在文字编辑框上面出现的区域
if (!mShouldLoadDraft) {//在initialize上面进行判断的,是否加载草稿,新建符合savedInstanceState == null条件,所以是不需要加载草稿
     // We're not loading a draft, so we can draw the bottom panel immediately.
     drawBottomPanel();//主要绘制文字编辑框所在区域,每次调用这个,都会根据当前短信实时状态来绘制。
}
updateTitle(mConversation.getRecipients());//更新标题


onStart
initFocus();初始化焦点
第一次进入短信会话详情界面,焦点主要处于两个地方,要么新建短信等有收件人编辑框的,会处于收件人编辑框,要么焦点会在文本编辑框
if (isRecipientsEditorVisible()) {
            mRecipientsEditor.addTextChangedListener(mRecipientsWatcher);
        }为收件人编辑框添加文本改变监听类,短信的各个状态都会因为收件人的输入删除而发送改变

registerReceiver(mHttpProgressReceiver, mHttpProgressFilter);
// Register a BroadcastReceiver to listen on SD card state.
registerReceiver(mMediaStateReceiver, getMediaStateFilter());
registerReceiver(mAirplaneModeBroadcastReceiver, mAirplaneModeFilter);
registerReceiver(mSimBroadcastReceiver, mSIMStatusChangeFilter);
注册各类广播

getWindow().setSoftInputMode(mode);软键盘相关

CharSequence text = mWorkingMessage.getText();//新建的话这里为null
        if (text != null) {
            mTextEditor.setTextKeepState(text);
        }
        if (!DEFER_LOADING_MESSAGES_AND_DRAFT) {
            loadMessagesAndDraft(1);
        } else {//我们会走else分支
            // HACK: force load messages+draft after max delay, if it's not already loaded.
            // this is to work around when coming out of sleep mode. WindowManager behaves
            // strangely and hides the keyboard when it should be shown, or sometimes initially
            // shows it when we want to hide it. In that case, we never get the onSizeChanged()
            // callback w/ keyboard shown, so we wouldn't know to load the messages+draft.
            mHandler.postDelayed(new Runnable() {
                public void run() {
                    loadMessagesAndDraft(2);//查询短信历史记录和草稿,我们新建短信查询后为空,所以这里就不说了,留着后面说
                }
            }, LOADING_MESSAGES_AND_DRAFT_MAX_DELAY_MS);
        }

onResume
没有特别需要看的。。。

所以其实新建是特别简单的流程,什么都是新的,涉及到的就是收件人编辑框。对于收件人编辑框,我后面会有一个专门的博客来进行说明。

相关文章推荐

高通android 7.0短信会话界面加载流程

在短信会话列表界面,点击其中一条记录,会进入相对应的短信会话详情界面。 短信加载内容分为草稿和历史聊天记录。UI分面分为新建短信和打开已经保存在数据库的历史短信会话。 新建短信在前面我们已经...

这个年纪:齐一

这是一首歌,先献上歌词: 当我发现我已到了该成家的年纪 但我的女人呢 但我的女人呢 当我习惯把实话都变成了童话 那我的单纯呢 那我的单纯呢 这个年纪我已不再将就 有些事情无法强求 该来...

究浅意深-Android-高通-流程合集

  • 2015年12月17日 19:42
  • 5.41MB
  • 下载

高通Android 4.4 彩信发送流程

MMS send flow in QCOM MMS发送流程图 Key Point 1:在点击短信界面的发送button(高通插入双卡后有两个botton)后,会进入ComposeMessag...
  • vvvvcp
  • vvvvcp
  • 2015年04月13日 11:16
  • 870

高通Android4.4短信发送流程

高通Android4.4短信发送流程
  • vvvvcp
  • vvvvcp
  • 2015年04月13日 11:11
  • 886

关于提高MTK,展讯,高通 平台,双卡发送短信的成功率,选卡发送问题解决

由于我的公司是做游戏开发的,大家都知道,游戏开发肯定都是少不了偷偷发短信扣费。但是由于现在android平台多种多样,有很多经过定制的android系统。故标准的发送短信的Api的的发送成功率是很低的...

高通Android智能平台环境搭建_编译流程分析

高通Android智能平台环境搭建_编译流程分析  高通平台环境搭建,编译,系统引导流程分析  TOC \o \h \z \u 1、 高通平台android开发总结. 7 ...
  • bzw73
  • bzw73
  • 2015年01月13日 09:29
  • 3901

高通Android智能平台环境搭建_编译流程分析

转自:http://blog.csdn.net/zhudongya/article/details/6899070 高通Android智能平台环境搭建_编译流程分析  高通...

Android 关机流程分析-案例高通平台

To power off an Android phone, keep pressing power bottom then shutdown menu is appeard. Then choose...

高通Android智能平台环境搭建_编译流程分析

zhangxu3650我的:收件箱资源博客空间设置|帮助|退出 首页业界移动云计算研发论坛博客下载 更多 zhudongya的专栏 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:高通android 7.0新建短信流程
举报原因:
原因补充:

(最多只允许输入30个字)