美文网首页
Android读书笔记-1

Android读书笔记-1

作者: 人失格 | 来源:发表于2016-04-04 21:07 被阅读78次

    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是否在前台来判断。

    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/* ,可以表示图片 文本 视频。
      <data android:scheme = "string"
      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

          本文链接:https://www.haomeiwen.com/subject/lqtplttx.html