赌五块钱这些基础知识你都不知道

Activity做为android四大组件之首,你真的有很了解吗。有心课堂带你查缺补漏,夯实基础。

赌五块钱这些基础知识你都不知道
749人加入学习
(15人评价)
价格 ¥4.90
会员免费学 购买课程

startActivityForResult会因为版本差异和启动模式的区别,导致回传值失败

 

 

 

 

 

 

[展开全文]

任务栈

盛放Activity的容器,先进后出

 

Activity LaunchMode

* standard 标准,默认

* singleTop 栈顶复用

* singleInstance 单例

* singleTask 栈内复用

[展开全文]

使用context,需要注意内存泄漏

1. 优先使用ApplicationContext

2.存活时间长于Activity的对象,不要持有该Activity的引用

3. 尽量不要在Activity中使用非静态内部类,因为它会隐式持有该Activity的引用

[展开全文]

1. Activity为什么不能new

在android平台编程,就要遵守Android平台设计之初定好的规则,就要创建Activity,清单文件配置,通过上下文中的其他组件打开

2. Context是什么

上下文,就像语文中讲的联系上下文是一种语境吧,这里是指应用程序所运行的环境

四大组件中,activity和service是Context的子类

Context数量 = Activity + Service + application

[展开全文]

A启动B

在A走完onPause()后,B开始启动,所以,不要在onPause()中做重量级操作,会影响B的启动

 

统一管理Activity生命周期的一种方式:

1. 实现Application.ActivityLifecycleCallbacks接口

2. 在Application或BaseActivity中,registerActivityLifecycleCallbacks

[展开全文]

1. Android中的Main()方法,在ActivityThread中

2. startActivity()最终还是调用startActivityForResult()方法,requestcode传入-1代表不需要返回值

3. android应用程序启动流程

* Launcher通过Binder进程间通信机制通知ActivityManagerService,它要启动一个Activity;

* ActivityManagerService通过Binder进程间通信机制通知Launcher进入Paused状态;

* Launcher通过Binder进程间通信机制通知ActivityManagerService,它已经准备就绪进入Paused状态,于是ActivityManagerService就创建一个新的进程,用来启动一个ActivityThread实例,即将要启动的Activity就是在这个ActivityThread实例中运行;

* ActivityThread通过Binder进程间通信机制将一个ApplicationThread类型的Binder对象传递给ActivityManagerService,以便以后ActivityManagerService能够通过这个Binder对象和它进行通信;

*ActivityManagerService通过Binder进程间通信机制通知ActivityThread,现在一切准备就绪,它可以真正执行Activity的启动操作了。

以上是老罗总结的启动的五个阶段,博客地址https://blog.csdn.net/luoshengyang/article/details/6689748

 

个人感觉这节课讲的不好,对于我这种不了解底层的人,讲师直接照着一个流程图来讲,我听的是很蒙的,反而不如老罗总结的这几句话让我能了解个大概的流程

[展开全文]

Activity 生命周期存在的意义:

onCreate 创建——销毁 onDestory

onStart 可见——不可见 onStop

onResume 可交互——不可交互 onPause

 

Activity 异常生命周期:

onSaveInstanceState()和onRestoreInstanceState()不是Activity生命周期中的方法,但是在Activity异常销毁重建时会调用这两个方法。

onSaveInstanceState()会在onStop()之前调用

onRestoreInstanceState()会在onStart之后被调用

上面是在未设置Activity的android:onConfigChanges属性的情况下才会发生。

如果在清单文件中给Activity设置了android:onConfigChanges="orientation|screenSize",在旋转屏幕时,该Activity不会重走生命周期,也不会调用onSaveInstanceState()和onRestoreInstanceState()方法,而是会调用onConfigurationChanged()这个方法

 

以上,是这节课的笔记

[展开全文]

一.Android的main方法在哪里 

ActivityThread这个类里面开启了一个Loop循环来监听是否有消息要处理。 

开起了一个循环线程(死循环)

循环系统和子线程发来的消息

不会做一些具体的业务逻辑处理它主要负责UI的界面显示 

总结:所以他就不断的循环系统以及子线程发来的消息然后根据这些消息处理相关的UI的操作,如果这个循环停止了也就表示当前应用程序已经退出运行。

二. Activity 生命周期的作用

1.获得流畅的用户体验

2.异常情况下保存Activity督状态

 

[展开全文]

Activity生命周期对应关系

创建与销毁 OnCreate, onDestroy()

是否可见 onStart(), onStop()

是否在前台 onResume , onPause()

onStart()和onResume()有什么区别

onStart :是可见但不可以与用户交互

onResume:是可见并可与用户交互

[展开全文]

Activity到底是什么?

Activity是一个应用程序组件,提供一个屏幕,用户可以用来完成某项交互任务

 

Activity继承自ContextThemeWrapper

[展开全文]

Context是一个抽象类,它有两个子类。ContextImpl和ContextWrapper。其中Application和Service以及Activity均是ContextWrapper的子类。

Context的个数=Actvity的个数+service的个数+1(即Application的个数)

[展开全文]

创建与销毁 onCreate(),onDestroy()

是否可见onStart(),onStop()

是否在前台onResume(),onPause()

onStart()与onResume()的主要区别:

前者表示Activity可见但用户不能与之交互,后者表示Activity可见并且处于活动状态,用户可以与之交互

[展开全文]