导图社区 Activity生命周期运营场景知识点笔记
通常,实现onDestroy是为了确保销毁Activity或者包含该进程时释放该Activity的所有资源 以上7个方法除了onRestart()方法,其他都是两两相对的,从而可以将Activity分为三个生命周期 完...
网店详情页排版方法分享~包括中心页面组成,优质详情必备,详情页的排版参考方法。感兴趣的小伙伴可以看看哦~
喷绘色彩基础培训方案,内容涵盖色彩基础,喷绘写真。框架清晰,内容丰富,希望对小伙伴有所帮助哦~
酒窖营销计划方案,包括结果目标,过程目标。框架清晰,内容丰富,有需要的小伙伴可以看看哦~ 可供大家参考,借鉴,交流。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
Activity生命周期运营场景知识点笔记
Acitivity
介绍
Android应用程序的主要组成部分
一个Android应用程序其实就是由一个或者多个Activity组成
显示用户界面,并处理用户交互
Activity Stack
线性的导航历史以供用户追溯访问
新的activity,它就被添加进activity栈,以便按BACK键时能够返回到上一个activity
视图、窗体、菜单和对话框则不能
离开activity状态
BACK键
结束(销毁)当前activity并为用户显示上一个activity
不是所有activity,如音乐
HOME键
stop状态后台可以运行
意图(Intents)
显式意图,Android就会立即启动那个activity
隐式意图,Android先去intent filter寻找合适的activity再启动
多个合适的意图,Android就会列出一个意图选择列表供用户选择
实现Activity
定义一个类继承Acitivity
要在AndroidManifest.xml中配置
new->otherFile>android Actvivity
自动配置
生命周期
四种基本状态
Running
任务堆栈\屏幕最前端
用户可见且获得焦点
运行时
Paused
被置于后台
用户可见,但失去了焦点
暂停时
Stopped
新的Activity覆盖
失去焦点,用户不可见
停止时
Destroyed
Activity被系统终止,资源被回收
终止时
完整Activity活动状态
onCreate()
onCreate(Bundle savedInstanceState)
s不为null初始化可读取原有数据,避免被意外销毁
onStart()
对用户可见时
onResume()
用户交互、获取焦点
onPause()
失去焦点
onStop、onDestory可能不会被调用,对数据的持久化保存
onStop()
覆盖、对用户不可见
onDestory()
销毁、释放资源,清空,可为空线程
restart()
完整activity
应用场景
启动时
onCreate()===>onStart()===>onResume()无到有,有到全
home
跳到后台,停止
Onpause()->onStop()
再次打开
onRestart()->onStart()->onResume()
返回键
淡出屏幕,堆栈被销毁
p-s-d
onPause()===>onStop()====>onDestroy()
A覆盖启动B
启动A退B进
A.onPause()==>B.onCreate()===>B.onStart()==>B.onResume()->A.stop()
再次打开与A无关
B淡出屏幕,A重新加载,B堆栈被销毁
ActivityB.onPause()===>
ActivityA.onRestart()===>ActivityA.onStart()===>ActivityA.onResume()
===>ActivityB.onStop()===ActivityB.onDestroy()
dialog类内部
点击dialog
A失去焦点,但存在
ActivityA.onPause()===>ActivityB.onCreate()==>ActivityB.onStart()===>ActivityB.onResume()
B失去焦点,父退子退
ActivityB.onPause()===>ActivityA.onStop()==>ActivityB.onStop();
A重新加载,B重新加载并获得焦点
ActivityA.onRestart()==>ActivityA.onStart()
==>ActivityB.onRestart()===>ActivityB.onStart()===>ActivityB.onResume();
dialog把焦点还给A,然后消失
B.onPause()==>A.onResume()==>B.onStop()==>B.onDestroy();
规则
轻量级先操作,先onPasue()或onResum
同时进退,先父后子
传输数据
intent
隐式
显示
所选
bundle添加
Application全局应用程序对象
intent=new Intent(this,DetailActivity.class);
this.startActivity(intent);
MyApp myApp=(MyApp) this.getApplication();
全局应用程序对象,不需要创建
通过a对象的setXXX()添加数据
myApp.setPerson(new Person("小蜜", 30));
myApp.setObj(new Object());
获得数据
(Myapp)this.getApplication();
myApp.getXXX
myApp.getAge();
myApp.getPerson();
myApp.getObj();
全局静态常量传值
自定义全局常量类
属性、方法final
setXXXX
获得数据getXXX
反射请求码
this.startActivityForResult(intent, REQUEST_ONE);
OneActivity
new Intent();
intent.putExtra("name", "张三");
this.setResult(50, intent);
this.finish();
mainUI主线程规则
不要阻塞UI线程
1.超过5s有出现ANR(Application Not Responding)错误的危险.
不要在非UI线程中更新UI
否则直接报错
6、启动模式
launchMode="standard"
在main...xml
实例化
加入栈
singleTop
判断栈顶
相同
不会创建
不同
并入栈
singleTask
有没有内容
有
没有
实例化,加入返回栈
singleInstance"
首次启动
加入新栈
引用地址在回退栈
其他
回退栈删除地址值
栈顶生成新的地址值
方法
标题
android:label=”…”属性
setTitle()
不可见
setVisible(false)
透明
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen“
横竖屏
screenOrientation=
竖屏
portrait 破树
横屏
landscape 懒惰横着
setRequestedOrientation
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)