WEB开发网
开发学院手机开发Android 开发 Android MMS/SMS 入口 阅读

Android MMS/SMS 入口

 2010-11-05 00:55:27 来源:WEB开发网   
核心提示:MMS - 入口和联系人,想到什么说什么,Android MMS/SMS 入口,在MMS中最重要的两个ui,或者说是用户操作短信的入口,如果没有,就起一个新的,一个是conversationList(短信列表界面) ,另一个就是ComposeMessageActiity(单个对话或者短信),以后简称CMA

MMS - 入口和联系人,想到什么说什么。

在MMS中最重要的两个ui,或者说是用户操作短信的入口,一个是conversationList(短信列表界面) ,另一个就是ComposeMessageActiity(单个对话或者短信),以后简称CMA。

每个CMA 录属于一个Conversation或者不属于任何conversation(无收件人草稿);每个converation由独立的threadId来相互区分

每个CMA有一个WorkingMessage,唯一,表示这个thread(话题)下,用户编辑的短信草稿。

CMA和ConversationList的launch mode都是singleTop,(关于launch mode,请参考 http://androidappdocs.appspot.com/guide/topics/fundamentals.html)

android的launch mode涉及到Task和Activity,简单点说,用户看到的每个界面,基本上都是一个个的Activity,而这些Activity以栈的形式放入在Task中,比如进栈操作由用户的点击进入其他Activity产生,出栈由用户按下back键完成。

一个Task的属性,由他拥有的第一个Activity,也就是栈底的那个activity决定。

一个Activity的launch mode,就是决定他在Task中的表现特点,比如默认的standard模式,就是没有特点,可以在一个Task里随便加,随便加几个instance都成,还能同时在多个Task中共存,就像IE打开网页那种感觉,没有什么限制。

singleTask是整个手机中只能有一个,而且必须出现在这个Task的栈底。

singleInstance表示这个Acitivity独占了整个Task,这个task只有这么一个Activity,最霸道。

singleTop和standard有点类似,区别是,他会去重用Task顶层的他自己的实体,有点绕,像文档上说的,举个例子就明白了。

比如说ABC是3个Activity,mode是standard,在一个栈中的排列是A-B-C,这时候由C再new一个C的intent时,Task变成A-B-C-C;

如果C的mode凑巧是singleTop,那么顶部只能是一个C,也就是在A-B-C这个场景下,再来一个C时,Task变成A-B-C。只是现在顶部的C已经是崭新的C,不是原来那个。

另外,比如launcher按下一个C的图标,这时候,系统会检索所有以C为栈底的Task,如果找到了,就把他起起来,如果没有,就起一个新的。

(I)

CMA的 onSaveInstanceState 函数

引用一段在文档上的说明,

Called to retrieve per-instance state from an activity before being killed

1 2 3 4 5  下一页

Tags:Android MMS SMS

编辑录入:coldstar [复制链接] [打 印]
赞助商链接