android广播知识点,Android基本知识点面试

请注意,本文编写于 787 天前,最后修改于 787 天前,其中某些信息可能已经过时。

四大组件是什么

Activity 活动、Service 服务、Broadcast Receiver 广播接收器、Content Provider内容提供器

四大组件的生命周期和简单用法

活动

生命周期:启动activity:系统先调用onCreate(),然后调用onStart(),最后调用onResume()方法,activity进入运行状态。

简单用法:活动的跳转

服务

一个Service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。

启动服务:Contex.startService()或Contex.bindService()启动服务

广播接收器

对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。

内容提供器

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

Android 五大组件

Android 五大布局: FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

Activity之间的通信方式Intent

Broadcast

数据存储

静态变量

Activity各种情况下的生命周期

1386652296ee373d5598550d54aba866.png

Activity的四种启动模式对比standard,每新建一个活动,都会新建一个实例

singleTop,每次扫描栈顶,如果在任务栈顶发现了相同的实例则重用,否则新建并压入栈顶。

singleTask,会扫描整个任务栈,发现了相同的实例则重用,否则新建并压入栈顶。

singleInstance,该模式具备singleTask模式的所有特性外,并且该实例整个系统中就这么一个实例

Activity 怎么和Service 绑定?

怎么在Activity 中启动自己对应的Service?

service和activity怎么进行数据交互?

Service的开启方式start方式1.定义一个类继承Service

2.在Manifest.xml文件中配置该Service

3.使用Context的startService(Intent)方法启动该Service

4.不再使用时,调用stopService(Intent)方法停止该服务bind方式绑定activity1.定义一个类继承Service

2.在Manifest.xml文件中配置该Service

3.使用Context的bindService(Intent, ServiceConnection, int)方法启动该Service

4.不再使用时,调用unbindService(ServiceConnection)方法停止该服务

请描述一下Service 的生命周期onCreat()创建服务onStartCommand()开始服务

onDestroy()销毁服务

onBind()绑定服务

onUnbind()解绑服务

谈谈你对ContentProvider的理解

说说ContentProvider、ContentResolver、ContentObserver 之间的关系

请描述一下广播BroadcastReceiver的理解

广播的分类

广播被分为两种不同的类型:普通广播(Normal broadcasts)普通广播是完全异步的,可以在同一时刻(逻辑上)被所有接收者接收到,消息传递的效率比较高,但缺点是:接收者不能将处理结果传递给下一个接收者,并且无法终止广播Intent的传播;

有序广播(Ordered broadcasts)有序广播是按照接收者声明的优先级别(声明在intent-filter元素的android:priority属性中,数越大优先级别越高,取值范围:-1000到1000。也可以调用IntentFilter对象的setPriority()进行设置),被接收者依次接收广播。

广播使用的方式和场景

在manifest 和代码中如何注册和使用BroadcastReceiver?4大基本组件都需要注册才能使用,每个Activity、service、Content Provider都需要在AndroidManifest文件中进行配置。AndroidManifest文件中未进行声明的activity、服务以及内容提供者将不为系统所见,从而也就不可用。

broadcast receiver广播接收者的注册:静态注册(在AndroidManifest文件中进行配置),会随系统的启动而一直处于活跃状态

通过代码动态创建并以调用Context.registerReceiver()的方式注册至系统。制作intent(可以携带参数)

使用sendBroadcast()传入intent;

制作广播接收器类继承BroadcastReceiver重写onReceive方法(或者可以匿名内部类啥的)

在java中(动态注册)或者直接在Manifest中注册广播接收器(静态注册)使用registerReceiver()传入接收器和intentFilter

取消注册可以在OnDestroy()函数中,unregisterReceiver()传入接收器

本地广播和全局广播有什么差别?BroadcastReceiver用于应用之间的传递消息;

LocalBroadcastManager用于应用内部传递消息,比broadcastReceiver更加高效。

Application 和 Activity 的 Context 对象的区别第一种中context的生命周期与Application的生命周期相关的,context随着Application的销毁而销毁,伴随application的一生

第二种中的context跟Activity的生命周期是相关的

Android中数据存储方式文件存储

SharedPreferences

SQLite数据库存储

ContentProvider

网络存储

问题来源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值