“Android的构成基石——四大组件”阅读笔记

Activity

UI操作、页面跳转等

生命周期

onCreate()

执行各种初始化操作

onStart()

onResume()

Activity可见,此时Activity位于栈顶,并且处于运行状态。

onPause()

释放cpu资源,保存关键数据等

onStop()

如果是对话框式的Activity,则onPause会走,onStop不会走

onDestroy()

执行各种释放内存操作。

onRestart()

构成

PhoneWindow->DecorView->DefaultLayout->ViewGroup->用户的xml布局

四种启动模式

standard

每次都重新创建
不断启动A
栈:A->AA->AAA

singleTop

如果在栈顶就不重新创建
不断启动A
栈:
1:A->A->A
2:AB->ABA->ABA

singleTask

中只能有一个该Activity实例,如果有该实例,则干掉他上面的,展示他
不断启动A:
栈:
1:A->A->A
2:B->BA->BA
3:ABC->A->A

singleInstance

整个系统中,只能有一个该Activity实例。

Service

后台耗时操作等,主要处理不需要和用户交互的行为或者需要长期驻扎在后台的行为。
默认不运行在子线程, 因此不要在Service中做耗时操作(子线程除外)

生命周期

onCreate()

只在第一次调用startService的时候走

onStartCommand()

每次startService都走,但是只有一个实例。stop一次就终止这个服务了。

onDestroy

IntentService

适合执行一些短期的耗时任务。执行完内容后就自我销毁。重写onHandleIntent方法即可,本身就在子线程中进行。

前台Service

Service默认在后台,在系统内存不足时会自动被回收。但是前台Service不会,并且可以在通知栏显示前台的服务。

AIDL

比较复杂,下次单独拎出来详细拓展一下。

ContentProvider

存储、共享数据等。是对SQLiteOpenHelper的二次封装,通过Uri的映射来获取数据。

Broadcast

组件、应用间通信等。

普通广播

完全异步的,但是所有的接收器接收顺序不一定,并且接受者的处理结果不能继续传递。并且广播发出后无法终止。

有序广播

接收器可以设置优先级,数值越大越优先,可以传递结果给下层,可以终止广播。

本地广播

只限于本应用内的广播接收器接收。保证安全,其他和普通广播基本一致。

Sticky广播

只保留最后一条广播,并且每当有匹配的接收器注册时,就发送。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值