标签:定义 ini ssi 发送 not 权限 依次 事件 move
1、四大组件是什么与它们的生命周期(及Fragment)。
Activity: 通过Intent来进行通信,intent中包含动作和动作的数据
BroadcastReceive:可以在广播中启动一个Activity或者Service来响应接收到的信息,或者用NotificationManager 来通知用户,可以对外部数据进行过滤,只对感兴趣的事件进行响应。
普通广播:Context.sendBoradCast(intent)
有序广播:Context.sendOrderBroadcast(intent,receiverPermission),receiverPermission决定广播的级别,值在-1000到1000之间,值越大,发送的优先级越高。接收的广播可以通过intentfilter中的priority设置优先级。abortBroadcast()可以截断广播。
异步广播:通过Context.sendStickyBroadcast(intent)发送。还有sendStickyOrderedBroadcast(intent, resultReceiver, scheduler, initialCode, initialData, initialExtras)方法,该方法具有有序广播的特性也有异步广播的特性;发送异步广播要: <uses-permission android:name="android.permission.BROADCAST_STICKY" />权限,接收并处理完Intent后,广播依然存在,直到你调用removeStickyBroadcast(intent)主动把它去掉。
监听广播Intent的步骤:1.定义一个类继承BroadCastReceiver,然后重写onReceive()方法。
2.静态注册,直接在清单文件中注册或者动态注册。代码中registerReceiver(receive,intentfilter),注销unregisterReceiver(receive)。
广播的生命周期只有10s,如果做了耗时的操作,会导致ANR。
Service:使用方法:1.继承Service,清单文件中注册。通过startService()或者bindService()方法启动。
通过startService()方法启动的服务和调用者没有关系,即使调用者关闭了,服务仍然运行想停止服务要调用Context.stopService(),此时系统会调用onDestory(),使用此方法启动时,服务首次启动系统先调用服务的onCreate()-->onStart(),如果服务已经启动再次调用只会触发onStart()方法
使用bindService()启动的服务与调用者绑定,只要调用者关闭服务就终止,使用此方法启动时,服务首次启动系统先调用服务的onCreate()-->onBind(),如果服务已经启动再次调用不会再触发这2个方法,调用者退出时系统会调用服务的onUnbind()-->onDestory(),想主动解除绑定可使用Contex.unbindService(),系统依次调用onUnbind()-->onDestory();
ContentProvider:其他应用可以通过ContentResolver类(见ContentProviderAccessApp例子)从该内容提供者中获取或存入数据
标签:定义 ini ssi 发送 not 权限 依次 事件 move
原文地址:https://www.cnblogs.com/forresthope/p/8810315.html