? Activity的继承关系
? Android 中 Context介绍 ? Acitivy实际是如何实例化的 ? Activity生命周期 ? Activity的启动方式,Task&Back Stack,进 程和线程,Intent.FLAG_ACTIVITY*? Activity,Window,View的关系
? Android消息
? 是Android应用程序环境的全局信息的接 口。 ? 中文翻译是:上下文 ? 可以理解为:句柄,环境变量。 ????Context是什么,它的作用? ? Context字面意思上下文,位于framework package的android.content.Context中,其实 该类为LONG型,类似Win32中的Handle句 柄,很多方法需要通过Context才能识别调用 者的实例,比如说T oast的第?一个参数就 是Context,?一般在Activity中我们直接 用this代替,代表调用者的实例为Activity,而 到了?一个button的onClick(View view)等方法 时,我们用this时就会报错,所以我们可能使 用ActivityName.this来解决,主要原因是因为 实现Context的类主要有Android特有的几个模 ???????型,Activity、Service以及BroadcastReceiver
Activity生命周期 ? 1、Activity 从创建到进入运行态所触发的事 件 onCreate()-->onStart-->onResume() ? 2、从运行态到停止态所触发的事件 onPause()--->onStop() ? 3、从停止态到运行态所触发事件 onRestart()-->onStart()--->onResume() ? 4、从运行态到暂停态所触发事件 onPause() ? 5、从暂停态到运行态所触发事件 onResume() ????Activity生命周期 ? a.打开应 用:onCreate-》onStart-》 onResume ,在开始的时候这三个方法都会调用。 ? b.从第?一个activity切换到第二个:先 会 onPause第?一个,然 后onCreate-》onStart-》 onResume,最 后在onStop ? c.从第二个切换到第?一个:内容与上?一步 相同 ? d.按手机的回退(back)键:先onPause 第?一个,然 ???????后 onRestart-》 onStart-》 onResume
? Standard ? singleTop ? singleTask ? singleInstance ???????????Activity的启动方式 ? Standard启动?一次就?一个实例 ? singleTop 启动时,如果正好在顶部 则NewIntent到这个实例,如果不在,则是 第二个实例 ? singleTask 当Task里存在实例, 则NewIntent到这个实例, ? singleInstance创建?一个单独的task存放这 个实例,每次跳过来都是这个实例。 ? onNewIntent onStart onResume ????FLAG_ACTIVITY_REORDER_TO ? 如果已经启动了四 个Activity:A,B,C和D, 在D Activity里,想再启动?一个Actvity B, 但不变成A,B,C,D,B,而是希望 是A,C,D,B,则可以像下面写代 码:intent.addFlags(Intent.FLAG_ACTIVI TY_REORDER_TO_FRONT); ??????? ????FLAG_ACTIVITY_NEW_TASK ? 例如现在栈1的情况是:A B C。C通 过intent跳转到D,并且这个intent添加 了FLAG_ACTIVITY_NEW_TASK标记,如 果D这个Activity在Manifest.xml中的声明中 添加了Task affinity,并且和栈1的affinity不 同,系统首先会查找有没有 和D的T askaffinity相同的task栈存在,如果 有存在,将D压入那个栈,如果不存在则会 新建?一个D的affinity的栈将其压入。如 果D的Task affinity默认没有设置,或者和 栈1的affinity相同,则会把其压入栈1,变 ???????成:A B C D,这样就和不 ????FLAG_ACTIVITY_NO_HISTORY FLAG_ACTIVITY_SINGLE_TOP ? 例如现在栈情况为:A B C。C通过intent跳 转到D,这个intent添 加FLAG_ACTIVITY_NO_HISTORY标志, 则此时界面显示D的内容,但是它并不会压 入栈中。如果按返回键,返回到C,栈的情 况还是:A B C。如果此时D中又跳转到E, 栈的情况变为:A B C E,此时按返回键会 回到C,因为D根本就没有被压入栈中。 ? FLAG_ACTIVITY_SINGLE_TOP:和上 面Activity的Launch mode的singleTop类 似。如果某个intent添加了这个标志,并且 ???????这个intent的目标activity就是栈顶 ???????????FLAG_ACTIVITY_SINGLE_TOP ? 如果已经启动了四个Activity:A,B, C和D。在D 里,要到B ,同时去掉 C D 。用:Intent.FLAG_ACTIVITY_CLEAR_T OP ? 如果不想重新再创建?一个新的B,则加 上:Intent.FLAG_ACTIVITY_SINGLE ? intent.setFlags(Intent.FLAG_ACTIVITY_SI NGLE_TOP |Intent.FLAG_ACTIVITY_CLEAR_TOP);
? 这个和singleTask方式差不多
?
一、PackageManager相关 PackageManager相关 本类API是对所有基于加载信息的数据结 构的封装,包括以下功能: ? 安装,卸载应用 查询permission相关信息 查询Application相关信 息(application,activity,receiver,service ,provider及相应属性等) 查询已安装应用 增加,删除permission 清除用户数据、缓存,代码段等
activity and binder
? 从宏观的角度观 察Binder,Service,Service Manager,并阐 述各自的概念。从Linux的概念空间 中,Android的设计Activity托管在不同的的 进程,Service也都是托管在不同的进程, 不同进程间的Activity,Service之间要交换数 据属于IPC。Binder就是为了Activity通讯而 设计的?一个轻量级的IPC框架。 ? activity 整个应用程序的启动过程: ? ?一. Step1 - Step 11:Launcher通 ???????过Binder进程间通信机制通
原文:http://www.cnblogs.com/fenglh/p/3512072.html