Android四大组件:
1) Activity:主要用于前台界面的展示和交互
Activity生命周期:
onCreate:一般做View的初始化操作,比如添加View(setContentView,addView等)和View中数据的填充;
onDestroy:一般做一些资源的释放操作,以防止出现资源泄露或者依赖activity所引发的一些异常情况的发生;
说实话这三个回调接口在实际使用场景中并不多,对onStart、onRestart和onStop的使用可以从是否可见这点来找到它的正确使用姿势。这里举几个常用的场景:
这两个接口使用的频率比上一组要高,对onResume和onPause的使用可以从可以从是否获得焦点(焦点即代表是是否可交互)
这种启动模式最常见,也是Activity的默认启动模式,每当我们需要开启一个新的Activity页面时系统都会新建一个Activity实例对象,然后开启上面说的Activity的生命周期流程之旅,onCreate->onStart->onResume。
设置该模式后,当通过startActivity启动的Activity与当前Task 栈中最顶部的Activity一样时,系统不会重新创建一个Activity实例,而是进入一个特殊的方法onNewIntent,具体流程为:onNewIntent->onResume。这种场景还是比较多的,比方说商品详情页面一般都会有相关的商品推荐,点击推荐的某个商品后进入的还是一个商品详情页面,这个时候就不需要重新再创建一个新的商品详情Activity页面,直接复用已有的页面,刷新下View中的数据就好了。
设置该模式可以保证当前Task栈中每种Activity只会有一个实例存在,当通过startActivity启动Activity A时,如果当前Task栈中已经存在一个Activity A的实例,那么不再重新创建一个新的Activity实例,而是直接复用该实例,进入该Activity的onNewIntent方法,同时将位于Activity A实例之上的所有Activity弹出Task栈并销毁。这种场景在IM应用中使用的比较多,比如QQ或者微信的聊天页面,当从聊天页面进入其他页面,然后在重新进入聊天页面时就会直接进入原来的聊天页面,同时销毁中间新创建的Activity页面,并刷新聊天页面的数据。
设置该模式可以保证该Activity所在的Task中有且仅有一个activity实例,当通过startActivity启动Activity A时,如果该Activity的实例已经存在,那么不再重新创建一个新的Activity实例,而是直接复用该实例,进入该Activity的onNewIntent方法。这种场景出现的比较少,该Activity在整个系统只有一个实例,一般用于系统应用,并且可以被其他应用共享使用(有点类似于操作系统概念中的临界资源),比方说来电呼叫页面,在整个系统中就只能有一个,因为同一时刻只能存在一个电话呼叫。
1、BroadcastReceiver 用于异步接收广播Intent。主要有两大类,用于接收广播的:
正常广播 Normal broadcasts(用 Context.sendBroadcast()发送)是全然异步的。它们都执行在一个没有定义的顺序,一般是在同一时间。这样会更有效,但意味着receiver不能包括所要使用的结果或中止的API。
有序广播 Ordered broadcasts(用 Context.sendOrderedBroadcast()发送)每次被发送到一个receiver。所谓有序,就是每一个receiver执行后能够传播到下一个receiver,也能够全然中止传播--不传播给其它receiver。 而receiver执行的顺序能够通过matched intent-filter 里面的android:priority来控制,当priority优先级同样的时候,Receiver以随意的顺序执行。
2、广播接收器是一个专注于接收广播通知信息,并做出相应处理的组件。非常多广播是源自于系统代码的──比方,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也能够进行广播──比方说,通知其他应用程序一些数据下载完毕并处于可用状态。
3、应用程序能够拥有随意数量的广播接收器以对全部它感兴趣的通知信息予以响应。全部的接收器均继承自BroadcastReceiver基类。
4、广播接收器没实用户界面。然而,它们能够启动一个activity来响应它们收到的信息,或者用NotificationManager来通知用户。通知能够用非常多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等等。一般来说是在状态栏上放一个持久的图标,用户能够打开它并获取消息。
原文:https://www.cnblogs.com/fqfanqi/p/11108937.html