Android开发-四大组件

  • Activity

1.Activity生命周期onCreate-onStart-onResume-onPause-onStop-onDestory

2.A启动B,先调用A的onPause,然后调用B的生命周期,B的onResume调用完成后,调用A的onStop,如果B是一个半透明的Activity,则A的onStop不会被调用

3.onSaveInstanceState会在onStop之前调用,不能保证在onPause之前调用,onRestoreInstanceState在onStart之后调用

4.SingleInstance:A是SingleInstace,那么A会在一个独立的任务栈中启动,A在启动B,B会在原来的任务栈中启动,不会在A的任务栈中

  • Service

1.启动方式:bindService:启动方退出,service也会退出,startService:启动方退出,service不会退出,需要主动调用stopSelf停止自己,多次调用会在次调用onStart,不会重复调用onCreate

2.如何保证service不被杀死:

onStartCommand返回值改成START_STICKY,service被杀死后,会被重启,重传Intent,与之前一样

调用startForeground将service设置成前台状态,降低service被杀死的概率

在onDestory方法中重启service

3.IntentService:会在一个子线程中处理任务,任务处理完成后会自己销毁

  • BroadCastReceiver

1.两种注册方式:

manifest文件中注册,应用程序推出以后,仍然可以接收广播

java代码动态注册,APP退出以后,不能接受广播

2.安全问题:

设置experted=false,不接收外部消息

自定义权限,注册广播时加入权限(自定义权限直接在manifest文件中使用permission节点即可)

发送消息时,加入package

使用LocalBroadCastManager

3.优先级:

优先级高的先接收消息,可以添加数据,也可以终止消息,有序广播通过sendOrderedBroadcase发送

无序广播调用sendBroadcast

猜你喜欢

转载自blog.csdn.net/qq_19694479/article/details/80267871