Android读书笔记-1

2016-04-04  本文已影响78人  人失格

Activity的生命周期

注意点:onStart onStop 在于activity是否可见来判断 onResume onPause 在于activity是否在前台来判断。

Activity的生命周期

异常情况的生命周期

  1. 当系统因为配置发生了改变,Activity会被销毁, 系统会调用onSaveInstanceState来保存当前的状态,当activity重新创建, 回报之前销毁的Bundle作为参数传递给onRestoreInstanceState和onCreate方法 ,所以我们可以通过onRestoreInstanceState和onCreate来判断activity是否重建,在时序上onRestoreInstanceState是在onStart方法后边。但是Oncreate方法如果在正常启动里面的参数将会为Null,而onRestoreInstanceState 里面的参数一定不会为空。
  2. 当我们不需要系统重新创建Activity,我们可以制定configChanges属性,通常的配置为android:configChanges = "orientation|keyboardHidden|locale " 这是系统调用的onConfigurationChanged方法,我们可以在这个方法来做一些自己的特殊处理。

任务栈

TaskAffinity这个参数表示了Activity所需要的任务栈的名字,这个属性值必须不能和包名相同,否则相当于没有制定。 主要是和singleTask属性或者allowTaskReparenting属性配对使用 ,任务分为前台任务栈和后台任务栈,后台任务栈中的activity位于暂停状态 。

  1. 和singleTask 用来制定目前的activity的任务栈的名字。
  2. 当allowTaskReparenting 为true的时候,当一个应用A启动了应用B的某个Activity后,此Activity会直接从应用A的任务栈转移到应用B的任务栈中。

两种启动模式:

  1. 通过AndroidMenifest: 制定Activity启动模式:android:launchMode ="singleTask".
  2. 通过Intent 设置标志位为Activity制定启动模式:
    Intent intent = new Intent();
    intent.setClass(...this,...class);
    intent.addFlag(Intent.Flag_ACTIVITY_NEW_TASK)
    startActivity(intent);

常用activity的Flags:

  1. FLAG_ACTIVITY_NEW_TASK
  2. FLAG_ACTIVITY_SINGLE_TOP
  3. FLAG_ACTIVITY_CLEAR_TOP

IntentFilter的匹配规则

IntentFilter中的过滤信息有action,category,data,只有一个Intent完全匹配这三项才算完全匹配。

上一篇下一篇

猜你喜欢

热点阅读