Android读书笔记-1

Activity的生命周期

  • onCreate: 表示Activity的正在被创建 ,在这个方法,我们通常会做一些初始化动作,比如调用SetContentView去加载视图布局资源,初始化Activity所需要的数据
  • OnRestart:表示Activity正在重新启动,从不可见变为可见状态。一般是用户切换到桌面或者用户重新打开了一个新的Activity。此时Acticity变成了不可见 onPause onStop 当用户从新回来则会回到这个Activity 调用Activity的onRestart方法
  • onPause: 这个方法比较特别,因为它涉及到新的Activity的显示,新的Activity中的onResume方法, 所以一般耗时的操作一般方法放到onstop方法。
  • onResume: acitivity此时已经activity已经可见 并且处于前台。
  • onDestory: 表示activity已经销毁了
  • onStop: acitivity 可以做一些重量级的回收工作,但是同时不要太耗时。

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

Android读书笔记-1_第1张图片
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完全匹配这三项才算完全匹配。

  • action是一个字符串 ,系统定义了一些action,同时我们可以自己定义自己的。action本身就是表示动作的意思,一个过滤规则可以有多个IntentFilter,但是只要匹配一个成功就可以
  • category 同样是一个字符串 ,系统定义了一些 ,我们也可以自定义一些
    和action不同的是 所有的category都必须和过滤规则的其中一个相同,平时我们开发也可以不设定 "android:intent.category.DEFAULT"
  • data 和action类似, 如果过滤规则中定义了data。data又两部分组成,mimeType和URI组成 ,mimeType指的媒体类型 比如image/jpeg audio/mpeg4-generic vidoe/* ,可以表示图片 文本 视频。
    android:host = "string"
    android:port="string"
    android:path ="string"
    android:pathPattern = "string"
    android:pathPrefix = "string"
    android:mimeType = "string"/>
  • android:scheme URI的模式 比如http,file,content 如果没有指定 URI则无效
  • android:Host 主机名 www.baidu.com ,如果没有指定URI则无效
  • android:Port: 端口
  • path pathPattern pathPrefix path表示的完整路径 pathPattern 也是表示完整路径 可以包括通配符

你可能感兴趣的:(Android读书笔记-1)