0
点赞
收藏
分享

微信扫一扫

Android-四大组件

广播:
1、例子:当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产生一条广播,接收到这条广播就能及时地做出提示和保存数据等操作;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度等等。
2、广播机制是不可替代的,它和Binder机制不一样的地方在于,广播的发送者和接收者事先是不需要知道对方的存在的,这样带来的好处便是,系统的各个组件可以松耦合地组织在一起,这样系统就具有高度的可扩展性,容易与其它系统进行集成。
3、 BroadcastReceiver的生命周期

4、下面是广播的特性:

5、Broadcast也有四种不同的分类:

6、有序广播:

  • android中的有序广播,也是一种比较常用的广播,该种类的广播用sendOrderedBroadcast发送。该中广播主要有一下特性:

7、App应用内广播(Local Broadcast):

  • android中的广播是可以跨域的(跨App),因此可能存在一下问题:
  • 对于上述情况就出现了这种广播,App应用内广播可理解为一种局部广播,广播的发送者和接收者都同属于一个App。相比于全局广播(普通广播),App应用内广播优势体现在:安全性高、效率高。

8、BroadcastReceiver有静态注册和动态注册两种方式,当用动态注册方式时要记得销毁的时候取消注册。静态注册是在AndroidManifest.xml文件中,所以一般情况下是不会移除的,比较占用资源。动态注册于onStart移除于onStop,所以建议使用动态注册。

  • 相比于系统广播而言,本地广播更加安全,更加高效,以下是本地广播的特点以及内部的实现机制 :

activity:

  • 当前 Activity 启动一个新的 Activity 时,新 Activity 会被推送到栈顶部,成为焦点activity。 前一个 Activity 仍保留在堆栈中,但是处于停止状态。Activity 停止时,系统会保持其用户界面的当前状态。 用户按“返回”按钮时,当前 Activity 会从堆栈顶部弹出(Activity 被销毁),而前一个 Activity 恢复执行(恢复其 UI 的前一状态)。

  • 什么情况下Activity不走onDestory?

  • setContentView方法所指定的View,只有在onCreate方法返回后才会显示在界面上。因此,如果调用了两次setContentView方法,只有最后一次才是有效的。
  • 3.1.27
  • 在activity的不同生命周期中调用finish()方法后,activity的生命周期回调:
  • ActivityA中启动ActivityB
  • 点击Home键
  • 在程序的配置文件 (APPManifest.xml ,的相关Activity里加上android:configChanges=”keyboard|keyboardHidden|orientation” 后,activity的以上配置发生变化不会让activity重建
举报

相关推荐

0 条评论