1、Activity生命周期android
在默认的状况下,Activity不作特殊的处理,那么当出现异常或者配置发生改变的状况下,Activity就会被销毁并从新建立,其onPause、onStop、onDestory均会被调用,因为是异常状况下终止的,系统会调用onSaveInstanceState保存当前Activity的状态,当Activity重建后,系统调用onRestoreInstanceState恢复以前保存的数据,如图所示:
在内存不足致使优先级低的Activity被kill,优先级从高到底有如下三种:字体
在系统配置发生改变了,不重建Activity,能够设置android:configChanges参数。在当所指定属性(Configuration Changes)发生改变时,通知程序调用onConfigurationChanged()函数。设置方法:将下列字段用“|”符号分隔开,例如:“locale|navigation|orientation”ui
2、启动模式code
启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置;启动模式有4种,分别为standard、singleTop、singleTask、singleInstance。xml
3、IntentFilter匹配规则生命周期
启动Activity分为两种,显示和隐式调用,为了匹配过滤列表,须要同时匹配过滤列表中的action、category、data信息,不然匹配失败。内存
<intent-filter> <action android:name="android.intent.action.SEND"/> <action android:name="android.intent.action.SEND_TO"/> </intent-filter>
那么只要Intent的action为“SEND”或“SEND_TO”,那么这个Intent在action方面就能和上面那个 Activity匹配成功。好比咱们的Intent定义以下:
Intent intent = new Intent("android.intent.action.SEND") ; startActivity(intent);
<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
<intent-filter> <action android:name="android.intent.action.VIEW"></action> <category android:name="android.intent.category.DEFAULT"></category> <data android:scheme="http"></data> </intent-filter>