admin管理员组

文章数量:1531530

2024年7月17日发(作者:)

1Activity的创建

创建一个类.继承ty.

ty的注册

在清单文件文件中添加

// --

name属性表示是哪个Activity.

过滤的条件 // --

ty的状态(从是否可见和是否可以获取焦点的角度考虑)

1.可见.能够获取焦点 Activity(活动) onCreate onStart onResume

2.可见.但不能获取焦点(部分被遮盖) (暂停) onPause

3.不可见.没有焦点 (停止) onPause onStop

4.销毁 (非活动) onDestroy

ty 的四种启动模式

修改方法:在清单文件,Activity属性中android:launchMode=””

rd 标准模式。会创建一个新的实例。允许相同的Activity叠加(默认.)

Top 栈顶唯一如果要启动的Activity位于栈顶则直接使用(onNewIntent())如果

不是位于栈顶则创建一个新的实例出来.

Task 栈内唯一 如果在栈顶存在该Activity则直接使用,如果不在栈顶但存在

于栈内会把该Activity之上的所有Activity移除(Destroy)并调用newInstance()方法重用该

Activity..如果栈内没有该Activity则创建一个新的实例

Instance 栈唯一以这种模式启动的Activity会创建一个新的Activity栈.该Activity

位于新创建的Activity栈顶.并且该栈中有且仅有一个Activity.(可以同通过栈的ID来查看.)

ty的启动方式

ctivity(Intent I);

ctivityForResult(Intent I,int ,requestCode)

使用第二种方式启动的Activity必须重写onActivityResult(int,int,Intent)方法.并且需要验

证请求吗和返回码.被启动的Activity通过setResult(int,Intent)方法来返回数据.

ty 的生命周期

1.中间一条线:

onCreate()—onStart()—onResume()—onPause()—onStop()—onDestory()

2.右边两条线:

onCreate()—onStart()—onResume()—onPause()—onResume()….

onCreate()—onStart()—onResume()—onPause()—onStop()—onRestart()—onStart()..

3.左边一条:(也可以说是两条线.在资源不足时优先结束某些Activity)

ty的优先级

1.程序的优先级和优先级最高的Activity的优先级相同.

2.长期不活动的Activity会优先被结束

3.位于栈顶的Activity的优先级最高.

4.杀死进程回收资源是由应有程序的优先级决定,应用程序的优先级与它的组件的最高

优先级相同.

5.两个优先级相同的应用程序.那个应用程序长时间处于低优先级的进程会先被杀死

6.进程的优先级同样受进程间依赖关系影响.如果一个应用程序依赖于另外一个应用程

序的Service或ContentProvider 那么提供服务的应用程序的优先级和接受服务的应用程序的

优先级一样.0

优先技树:

Active process (前台.进程中依附的应用程序包含当前与用户交互的组件.最后被杀死 )

1.处于活动的Activity(正与用户进行交互)

ty ,Service 或正在执行onReceive()的BoradcastReceiv

3.正在执行onStart(),onCreate,onDestroy()的Service

Visiable Process

可见但是不活动的.(部分被遮盖的Acitivity)

Started Service Process

已经启动的服务(服务虽然是后台的,但Android仍然把它们视为前台进程直道资源

被优先级比它高的需求.)

Background Process

Activity 不可见或没有启动的Service 这些进程被视为后台进程

Empty Process

Android保留那些已经走完生命周期的应用程序维护缓存以优化再次启动所需要的

时间.它们是最先被杀死释放资源的.

ty的数据保存

1.在程序意外终止时

2.在当前Activity被弹出时(从栈顶移除)

3.在当前Activity被改变时(横竖屏切换)

onCreate(Bundle saveInstanceState)中的参数Bundle对象用于保存

onRestoreInstanceState() 在onResume之前

onSaveInstanceState() 在onPause之后

本文标签: 应用程序进程启动方法栈顶