Android的四大主键

Android四大组件

一: Activity

Activity的生命周期

 

Activity的四种启动模式

 

(1)Standard 标准模式

Android创建Activity时的默认模式,每次启动一个Activity都会又一次创建一个新的实例入栈,无论这个实例是否存在。

(2)SingleTop 栈顶复用模式

如果要创建的Activity已经处于栈顶时,此时会直接复用栈顶的Activity,不会再创建新的Activity,触发onNewIntent方法;若要创建的Activity不处于栈顶,此时会创建一个新的Activity入栈。

(3)SingleTask 栈内复用模式

若要创建的Activity已经处于栈中时,此时不会创建新的Activity,而是将存在栈中的Activity上面的其他Activity所有销毁,使它成为栈顶。

(4)SingleInstance 单实例模式
全局单例模式,是一种加强的SingleTask模式。它除了具有它所有特性外,还加强了一点,具有此模式的Activity仅仅能单独位于一个任务栈中,这个经常使用于系统中的应用,比如Launch、锁屏键的应用等等,整个系统中仅仅有一个!所以在我们的应用中一般不会用到

 

二:Service

Service分为两种

(1)Service:

这一种是运行在主线程中的,如果要执行耗时操作,可在service中创建一个异步来执行

(2)IntentService:

这是一种异步服务,是继承于Service的子类,所以推荐当要执行耗时操作时在onHandleIntent方法做操作。

Service的两种启动方式

(1) startService/stopService

     注意:api 26 针对启动service做了限制,必须先调用ContextCompat.startForegroundService,然后再Service启动5秒内调用stopForeground,否则会导致闪退。

(2) bindService/unbindService

 

三:BroadcastReceiver

(1) 广播种类:无序广播与有序广播:
     sendBroadcast/sendOrderedBroadcast

(2) 广播形式:本地广播和全局广播:
     LocalBroadcastManager/Context

    本地广播:广播事件的发送和接收都在本应用,不影响其他应用也不受其他应用影响,只能被动态注册,不能静态注册,主要用法都在LocalBroadcastManager类中;

    全局广播:  可以接收其他应用发的广播,也可以发送广播让其他应用接收,全局广播既可以动态注册,也可以静态注册,接受其他应用和系统广播是全局广播的一个重要应用点;

(3) 注册方式:静态注册和动态注册:
     AndroidManifest/registerReceiver

    静态注册:是常驻型,跟随整个应用程序的生命周期

    动态注册:不是常驻型广播,也就是说广播跟随Activity的生命周期。注意在Activity结束前,移除广播接收器

(4) 接收方式:继承BroadcastReceiver,实现onReceive方法

 

四:ContentProvider

它主要的作用就是将程序的内部的数据和外部进行共享,为数据提供外部访问接口,被访问的数据主要以数据库的形式存在。

 

例子:

会议问题补充

1、activity 跳转生命周期:

   1. 步骤1(打开First Activity):经过onCreate、onStart、onResume后First Activity就展现啦;

   2. 步骤2(跳转至Second Activity):首先First Activity暂停(onPause),接下来Second Activity展现(onCreate、onStart、onResume),最后First Activity停止(onStop);

   3. 步骤3(返回到First Activity):首先Second Activity暂停(onPause),接下来First Activity重新打开并展现(onRestart、onStart、onResume),最后Second Activity停止并销毁(onStop、onDestroy);

   4. 步骤4(退出First Activity):经过onPause、onStop、onDestroy后First Activity暂停、停止并最终销毁。

2、已验证 Service 的onStartCommand 方法可以直接弹起吐司

3、当启动模式设置为 singleTask 时,某些情况下,onActivityResult 会失效

     原因参考:https://www.cnblogs.com/wgwyanfs/p/7203899.html

4、dialog弹起需要依赖activity,所以可以理解为属于activity一部分,弹起时不会触发activity的onPause

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值