Android课程读书笔记,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是否在前台来判断。

ee6a2d26bfb6

Activity的生命周期

异常情况的生命周期

当系统因为配置发生了改变,Activity会被销毁, 系统会调用onSaveInstanceState来保存当前的状态,当activity重新创建, 回报之前销毁的Bundle作为参数传递给onRestoreInstanceState和onCreate方法 ,所以我们可以通过onRestoreInstanceState和onCreate来判断activity是否重建,在时序上onRestoreInstanceState是在onStart方法后边。但是Oncreate方法如果在正常启动里面的参数将会为Null,而onRestoreInstanceState 里面的参数一定不会为空。

当我们不需要系统重新创建Activity,我们可以制定configChanges属性,通常的配置为android:configChanges = "orientation|keyboardHidden|locale " 这是系统调用的onConfigurationChanged方法,我们可以在这个方法来做一些自己的特殊处理。

任务栈

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

和singleTask 用来制定目前的activity的任务栈的名字。

当allowTaskReparenting 为true的时候,当一个应用A启动了应用B的某个Activity后,此Activity会直接从应用A的任务栈转移到应用B的任务栈中。

两种启动模式:

通过AndroidMenifest: 制定Activity启动模式:android:launchMode ="singleTask".

通过Intent 设置标志位为Activity制定启动模式:

Intent intent = new Intent();

intent.setClass(...this,...class);

intent.addFlag(Intent.Flag_ACTIVITY_NEW_TASK)

startActivity(intent);

常用activity的Flags:

FLAG_ACTIVITY_NEW_TASK

FLAG_ACTIVITY_SINGLE_TOP

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 也是表示完整路径 可以包括通配符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值