《Android开发艺术探索》第一章Activity的生命周期和启动方式小节
来源:互联网 发布:网络的危害事例 编辑:程序博客网 时间:2024/06/08 04:35
第一章 Activity的生命周期和启动模式
1. onCreate:setContentView加载布局资源
onRestart,onStart,onResume,onPause,onStop,onDestroy
onStart和onStop表示Activity是否可见,onResume和onPause表示Activity是否位于前台
2. 异常情况下生命周期
资源相关系统配置发生改变导致Activity被重建,调用onSaveInstanceState保存当前状态,调用onRestoreInstanceState或者onCreate来恢复数据;
<activity android:configChanges="orientation|screenSize"> ,可以让转屏时Activity不重建,而是调用onConfigurationChanged方法。
资源内存不足导致低优先级的Activity被杀死,如果一个进程中没有四大组件在执行,那么它很快会被系统杀死,所以将后台工作放入Service中从而保证进程有一定的优先级。
3. 启动模式
standard:标准模式每次启动一个A都会创建一个实例,不管该实例是否已经存在;谁启动了它,它就运行在谁的栈中;
singleTop:栈顶复用,栈顶的实例不会被重建,而是调用它的onNewIntent方法;
singleTask:栈内复用,附带clearTop效果;
singleInstance:单例模式,此种模式的A只能单独位于一个任务栈中
默认情况下,任务栈的名字为包名,可通过taskAffinity修改,taskAffinity主要跟singleTask和allowTaskReparenting起作用。
adb shell dumpsys activity来查看栈的内容;
4. Activity的Flags
FLAG_ACTIVITY_NEW_TASK,
FLAG_ACTIVITY_SINGLE_TOP,
FLAG_ACTIVITY_CLEAR_TOP,
FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 不出现在历史Activity列表中,android:excludeFromRecents="true"
5. IntentFilter的匹配规则
只用一个Intent同时匹配action,category和data才算匹配成功,只要能匹配任意一组intent-filter即可。
一组intent-filter中匹配任意一个action,Intent中如果没有制定action,则失败;
Intent中可以没有category(系统默认加上DEFAULT),若有则每个都要能匹配filter中的某一个category。filter中加入category-DEFAULT可以接收隐式调用。
filter中定义了data,则Intent的data必须与它的某一个data匹配,data由mimeType和URI两部分组成,filter中的URI中scheme的默认值为content或file。
调用PackageManager.resolveActivity活着Intent.resolveActivity,可以检查Activity是否可以匹配到,PackageManager.queryIntentActivities可以匹配一组Activity。
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
- 《Android开发艺术探索》第一章Activity的生命周期和启动方式小节
- 第一章Activity的生命周期和启动模式(Android开发艺术探索)
- Activity的生命周期和启动模式-Android开发艺术探索读书笔记第一章
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
- Android开发艺术探索读书笔记 第一章 Activity的生命周期和启动模式
- Android 艺术开发探索 第一章 Activity 的生命周期和启动模式观后感
- 《Android开发艺术探索》读书笔记-第一章 Activity的生命周期和启动模式
- Android开发艺术-第一章Activity的生命周期和启动模式
- Activity生命周期和启动模式 - Android开发艺术探索读书笔记(第一章)
- 《Android 开发艺术探索》随手笔记——第一章Activity生命周期和启动模式
- 【Android开发艺术探索读书笔记】 第一章 Activity的生命周期与启动模式
- Android开发艺术探索--第一章生命周期和启动方式总结(1)
- Android开发艺术探索--第一章生命周期和启动方式总结(2)
- 《Android开发艺术探索》读书笔记----第一章:Activity的启动模式
- Android开发艺术探索--Activity生命周期和启动模式
- <<Android 开发艺术探索>> 第一章 Actiivty的生命周期和启动模式
- Android开发艺术探索--第一章Acitivity的生命周期和启动模式
- Android 开发艺术与探究 第一章 Activity 的生命周期和启动模式
- 4 async task
- 各种存储硬件(Memery)区分(ROM、RAM、DRAM、SRAM和FLASH)
- python #-*- coding:utf-8-*-
- iOS经典面试题总结--内存管理
- 什么是面向切面编程(AOP)
- 《Android开发艺术探索》第一章Activity的生命周期和启动方式小节
- centos7部署calamari
- Linux下的Kafka配置步骤
- 页面运行一段时间后很卡排查:dom节点泄露
- 第14周项目1-(2)验证分块查找算法
- 通知与推送消息机制
- Ionic2 可以左右滑动的Segment
- openwrt中OPKG后不启动的分析
- orcale数据库使用方法