首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

行情艰难,Android初中级面试题助你逆风翻盘,每题都有详细答案

Activity即将停止,可以做一些稍微重量级回收工作,比如注销广播接收器、关闭网络连接等,同样不能太耗时; onDestroy():表示Activity即将被销毁,这是Activity生命周期中最后一个回调...:服务启动时调用,此方法适合完成一些数据加载工作,比如会在此处创建一个线程用于下载数据或播放音乐; onBind():服务被绑定时调用; onUnBind():服务被解绑时调用; onDestroy()...普通广播:开发者自身定义 intent广播(最常用),所有的广播接收器几乎会在同一时刻接受到此广播信息,接受先后顺序随机; 有序广播:发送出去广播广播接收者按照先后顺序接收,同一时刻只会有一个广播接收器能够收到这条广播消息...,当这个广播接收器逻辑执行完毕后,广播才会继续传递,且优先级(priority)高广播接收器会先收到广播消息。...有序广播可以被接收器截断使得后面的接收器无法收到它; 本地广播:仅在自己应用发送接收广播,也就是只有自己应用能收到,数据更加安全,效率更高,但只能采用动态注册方式; 粘性广播:这种广播会一直滞留

74820

精选Android中高级高频面试题:四大组件及Fragment原理

Activity即将停止,可以做一些稍微重量级回收工作,比如注销广播接收器、关闭网络连接等,同样不能太耗时; onDestroy():表示Activity即将被销毁,这是Activity生命周期中最后一个回调...:服务启动时调用,此方法适合完成一些数据加载工作,比如会在此处创建一个线程用于下载数据或播放音乐; onBind():服务被绑定时调用; onUnBind():服务被解绑时调用; onDestroy()...参考回答: 普通广播:开发者自身定义 intent广播(最常用),所有的广播接收器几乎会在同一时刻接受到此广播信息,接受先后顺序随机; 有序广播:发送出去广播广播接收者按照先后顺序接收,同一时刻只会有一个广播接收器能够收到这条广播消息...,当这个广播接收器逻辑执行完毕后,广播才会继续传递,且优先级(priority)高广播接收器会先收到广播消息。...有序广播可以被接收器截断使得后面的接收器无法收到它; 本地广播:仅在自己应用发送接收广播,也就是只有自己应用能收到,数据更加安全,效率更高,但只能采用动态注册方式; 粘性广播:这种广播会一直滞留

1.7K00
您找到你想要的搜索结果了吗?
是的
没有找到

Android四大组件全面解析,夯实基础。

通过在 里添加 **android:launchMode **即可设置相应启动模式~ 标准模式(standard) 栈顶复用模式(singleTop) 栈复用模式(singleTask) 单例模式...1.2 有序广播(Ordered broadcasts) 是一种同步执行广播,在广播发出之后,同一时刻只会有一个广播接收器能够收到这条广播消息,当这个广播接收器逻辑执行完毕后,广播才会继续传递。...所以此时广播接收器是有先后顺序,优先级高广播接收器就可以先收到广播消息,并且前面的广播接收器还可以截断正在传递广播。...动态注册:必须在代码中执行 受activity生命周期影响 当广播为有序广播时: 同优先级广播接收器,静态注册优先级高于动态注册 同优先级同类广播接收器,静态广播:先扫描优先于后扫描。...动态广播:先注册得优先于后注册。 当广播为标准广播时: 无视优先级,动态广播优先于静态广播接收器 同优先级同类广播接收器,静态广播:先扫描优先于后扫描,动态:先注册优先于后注册。 6.

83230

Android基础_1 四大基本组件介绍与生命周期

Android四大基本组件分别是Activity,Service(服务),Content Provider(内容提供者),BroadcastReceiver(广播接收器)。...如果它宿主进程被杀死 , 那么正在工作子线程也会被杀死 . 所以采用子线程来解决是不可靠 2. 动态注册广播接收器还有一个特点,就是当用来注册Activity关掉后,广播也就失效了。...静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着。... 元素用于声明服务 元素用于声明广播接收器 元素用于声明内容提供者 2>   4大组件激活 • 容提供者激活:当接收到ContentResolver...而一个广播接收器仅在响应广播信息时候激活。所以,没有必要去显式关闭这些组件。

1.4K30

Android入门教程 | 广播机制 Broadcast

注册为本地广播接收器无法收到标准广播。 带权限广播 发送广播时可以带上相关权限,申请了权限 App 或广播接收器才能收到相应带权限广播。...动态注册刚波接收器一定要取消注册。在onDestroy()方法中调用unregisterReceiver()方法来取消注册。 不要在onReceive()方法中添加过多逻辑操作或耗时操作。...因为在广播接收器中不允许开启线程,当onReceive()方法运行较长时间而没结束时,程序会报错。因此广播接收器一般用来打开其他组件,比如创建一条状态栏通知或启动一个服务。...要收到本地广播,同样需要LocalBroadcastManager来注册接收器。 可以把本地广播看成是一个局部,App广播体系。...在实现开机启动服务和网络状态改变、电量变化、短信和来电时通过接收系统广播让应用程序作出相应处理。

1.6K30

全局事件-广播(Broadcast)

而负责接收Broadcast数据接收器却永远不知道什么时候可以接收到广播。...必须要指定 我们编写短信接收器才可以接收系统短信广播,切记 配置权限android.permission.RECEIVE_SMS 即使注册广播接收器程序关闭,接收器仍然会接收到广播,除非从模拟器或者手机中卸载程序或者注销接收器...,否则无法阻止接收器接收广播 ---- 用代码注册广播接收器 如果在清单文件中配置广播接收器,程序安装后就会自动注册广播接收器,如果想在适当时候注册广播接收器,在使用完成之后将其注销就需要使用Java...,对于同一个应用程序中广播接收器会按照在Manifest清单文件中定义顺序调用。...可以通过sendBoradcast方式发送广播 方法定义如下: public void sendBroadcast(Intent intent) 下面的代码发送了一个广播,并添加广播数据和category

1.1K60

速读原著-Android应用开发入门教程(Android应用程序概念性描述)

5.1.1.应用程序组成部分 一般情况下,Android 应用程序由以下 4 种组件构成: 活动(Activity); 广播接收器(BroadcastReceiver); 服务(Service); 内容提供者...(2)广播接收器(BroadcastReceiver) 广播接收器用于让应用程序对一个外部事件做出响应。例如:电话呼入事件、数据网络可用通知或者到了晚上时进行通知。...使用 StartService 运行服务情景:使用这种方法启动服务服务 onCreate()和 onStart()这两个方法将被调用,服务会在后台运行直到退出,退出时将调用 onDestroy()...广播接收器生命周期 广播接收器有一个单一回调方法 onReceive(),当广播消息到达接收器时,Android 将调用这个方法,并传递给包含在这个消息中 Intent 对象。...广播接收器只有在这个方法执行过程中才处于活动状态,当 onReceive()返回后,广播接收器将不再处于活动状态。广播接收器功能类似于一个回调函数,只是单次运行时处于活动状态。

97410

Android小技巧: 这里涵盖了所有实现 “一键退出 App” 方法

通过 Android 组件: BroadcastReceiver 即使用 BroadcastReceiver 广播监听 原理:在每个 Activity 里注册广播接收器(响应动作 = 关闭自身);当需要退出...App 时 发送广播请求即可 具体实现 步骤1:自定义广播接收器 public class ExitAppReceiver extends BroadcastReceiver { private...在onCreate()中注册广播接收器 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState...; // 注:此处不能使用:System.exit(0);结束进程 // 原因:发送广播这个方法之后,不会等到广播接收器收到广播,程序就开始执行下一句System.exit(0),然后就直接变成执行System.exit...优点 应用场景广泛:兼顾单 / 多任务栈 & 多启动模式情况 缺点 实现复杂:需要在每个 Activity 里注册广播接收器 应用场景 任意情况下一键退出 App,但无法终止 App 进程

1.8K42

Carson带你学Android:这里涵盖了所有实现 “一键退出 App” 方法

通过 Android 组件: BroadcastReceiver 即使用 BroadcastReceiver 广播监听 原理:在每个 Activity 里注册广播接收器(响应动作 = 关闭自身);当需要退出...App 时 发送广播请求即可 具体实现 步骤1:自定义广播接收器 public class ExitAppReceiver extends BroadcastReceiver { private...在onCreate()中注册广播接收器 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState...; // 注:此处不能使用:System.exit(0);结束进程 // 原因:发送广播这个方法之后,不会等到广播接收器收到广播,程序就开始执行下一句System.exit(0),然后就直接变成执行System.exit...优点 应用场景广泛:兼顾单 / 多任务栈 & 多启动模式情况 缺点 实现复杂:需要在每个 Activity 里注册广播接收器 应用场景 任意情况下一键退出 App,但无法终止 App

73320

Android四大组件:BroadcastReceiver史上最全面解析

解决方案 使用App应用广播(Local Broadcast) App应用广播可理解为一种局部广播广播发送者和接收者都同属于一个App。...; 在广播发送和接收时,增设相应权限permission,用于权限验证; 发送广播时指定该广播接收器所在包名,此广播将只会发送到此包中App与之相匹配有效广播接收器中。...,不能静态注册 //注册应用广播接收器 //步骤1:实例化BroadcastReceiver子类 & IntentFilter mBroadcastReceiver mBroadcastReceiver...粘性广播(Sticky Broadcast) 由于在Android5.0 & API 21中已经失效,所以建议使用,在这里也不作过多总结。 ---- 5....特别注意 对于不同注册方式广播接收器回调OnReceive(Context context,Intent intent)中context返回值是不一样: 对于静态注册(全局+应用广播),回调onReceive

1.5K10

Android基础总结(4)——广播接收器

所以此时广播接收器是有顺序,优先级高广播接收器可以先接受到广播消息,并且前面的广播接收器还可以截断正在传递广播,这样后面的广播接收器就无法收到广播消息了。...注册广播方式有两种: 在代码注册:也称动态注册。...这种注册方法一般过程是 在Activity中创建一个IntentFilter对象,然后用IntentFilter对象addAction()方法添加相应广播类型 我们还需要有一个我们自定义广播接收器对象...,非常灵活,但是也存在着一个缺点,即必须要在程序启动之后才能接收到广播,因为注册逻辑是写在ActivityonCreate()方法中。...不要在广播接收器onReceive()方法中添加过多逻辑或者进行任何耗时操作,因为在广播接收器中是不允许开启线程,当onReceive()方法运行太长时间而没有结束时,系统会报错。

1K100

Carson带你学Android:手把手教你学会广播组件-BroadcastReceiver

原因: 对于动态广播,有注册就必然得有注销,否则会导致内存泄露 重复注册、重复注销也不允许 Activity生命周期如下: Activity生命周期方法是成对出现onCreate()...; 在广播发送和接收时,增设相应权限permission,用于权限验证; 发送广播时指定该广播接收器所在包名,此广播将只会发送到此包中App与之相匹配有效广播接收器中。.../取消注册广播接收器和发送广播时将参数context变成了LocalBroadcastManager单一实例 注:对于LocalBroadcastManager方式发送应用广播,只能通过LocalBroadcastManager...粘性广播(Sticky Broadcast) 由于在Android5.0 & API 21中已经失效,所以建议使用,在这里也不作过多总结。 6....特别注意 对于不同注册方式广播接收器回调OnReceive(Context context,Intent intent)中context返回值是不一样: 对于静态注册(全局+应用广播),回调onReceive

63210

安卓开发_深入理解广播机制

,即建议执行耗时操作 注:在广播接收器中创建子线程执行耗时操作也是建议使用,因为一旦广播接收器被销毁(太容易被销毁了,生命周期太短),子线程就成为了空线程,很容易被系统杀死 2、自定义BroadcastReceiver...在发送广播时,不管是什么广播类型(系统广播),系统默认增加了值为FLAG_EXCLUDE_STOPPED_PACKAGES(包含已经停止包)FLAG, 导致即使是静态注册广播接收器,对于其所在进程已经退出应用程序...Demo  应用程序发送广播 ,应用程序广播接收器接收广播并获得广播数据 1 package com.example.demo01; 2 3 import android.os.Bundle...动作:在系统中添加一个快捷方式。...一起使用时候,描述要添加快捷方式。

1.4K70

redis广播模式_广播

介绍 BroadcastReceiver 是 Android 四大组件之一,它作用于应用、进程间重要一种通信方式,能够将某个消息通过广播形式传递给订阅广播接收器中,下面我们就来分析一下 广播注册到接收到消息...pid,uid; 注释 2 获取 IntentFilter 所有 Action; 注释 3 把广播接收器 receiver 保存到了一个 ReceiverList 中,这个列表宿主进程是 rl.app...mReceiverResolver 中,这样,就将广播接收器和要接收广播类型接收器 filter 保存在 AMS 中了,以后就能接到到相应广播并做处理了。...onReceive 时序图 在 Activity 通过 sendBroadcast 发送一个广播最后 Binder 发送给 AMS , AMS 根据这个广播 Action 类型找到相应广播接收器,...本站仅提供信息存储空间服务拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

1.4K10

Android-浅谈广播机制,实现强制下线功能

类似的工作机制其实很多,比如就像计算机网络通信。 为了便于进行系统级别的消息通知,Android也有自己一套类似的广播消息机制。...Android也有一套完整api,允许应用自由发送和接收广播,发送广播所采用就是Intent,而接收广播所采用就是广播接收器。...有序广播: 是一种同步执行广播,在广播发出之后,同一时刻只会有一个广播接收器能够接收到这条广播消息,当这个广播接收器逻辑执行完毕之后,广播才会继续传递。所以此时广播接收器是有前后顺序。...优先级别高广播接收器就可以先接收到广播消息,并且前面的广播接收器还可以截断正在传递广播,这样后面的广播接收器就无法接收到广播消息了。...由于广播接收器需要弹出一个对话框来阻塞用户正常操作,但如果创建是一个静态注册广播接收器,是没有办法在 onReceive() 方法里弹出对话框这样UI操作,而我没问显然也不可能在每个活动中都去注册一个动态广播接收器

85430

Android小技巧: 这里涵盖了所有实现 “一键退出 App” 方法

里注册广播接收器(响应动作 = 关闭自身);当需要退出 App 时 发送广播请求即可 具体实现 步骤1:自定义广播接收器 public class ExitAppReceiver extends BroadcastReceiver...在onCreate()中注册广播接收器 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState...; // 注:此处不能使用:System.exit(0);结束进程 // 原因:发送广播这个方法之后,不会等到广播接收器收到广播,程序就开始执行下一句System.exit(0),然后就直接变成执行System.exit...应用场景广泛:兼顾单 / 多任务栈 & 多启动模式情况 缺点 1. 实现复杂:需要在每个 Activity 里注册广播接收器 应用场景 1....需要 Activity 经历正常生命周期,即创建时调用onCreate(),结束时调用onDestroy() 因为只有这样经历正常生命周期才能将 Activity正确写入 & 写出 容器 应用场景

54020

android学习笔记----自定义广播和系统广播

所以此时广播接收器是有先后顺序,优先级高广播接收器就可以先接收到广播消息,并且前面的广播接收器还可以截断或者修改正在传递广播,这样后面的广播无法接受到广播消息或者接收到不真实广播消息。...3.发送本地广播会比发送系统全局广播更高效。 系统广播广播接收器可以自由对自己感兴趣广播进行注册,这样当有相应广播发出时,广播接收器就能够接收到该广播,并在内部处理相应逻辑。...)方法中添加过多逻辑或进行任何耗时操作,因为在广播接收器中是不允许开启线程,当onReceive()方法进行了较长时间而没有结束时,程序就会报错。...因此广播接收器更多是扮演一种打开程序其他组件角色。如创建一条状态栏通知,或者启动一个服务等。...之前不是都在onCreate()和onDestroy()方法里来注册和取消广播接收器吗?

1.5K20

Android 全局广播使用

广播按照接收有序性可以分为有序广播和无序广播,无序广播就是一个广播信息发送出去之后,能够接收到这个信息广播接收器会同时接收到这条广播信息,而有序广播就是按照广播接收器优先级高低依次接收广播信息,并且广播传送过程中在广播接收器中可以终止广播传送...} } 在代码中,我们定义了一个内部类MyBroadcastReceiver继承于BroadcastReceiver类并且实现了它抽象方法onReceive,在这个方法中我们添加了接收到广播信息之后处理...,当然,这里只是简单地打印了一个信息,在onCreate方法中,我们用resgisterReceiver方法动态注册了广播接收器,并且为其添加了信息过滤器,只有信息过滤器中包含了 发送广播Intent...对象中setAction方法中参数时,这个广播信息才能被这个广播接收器接收到(其实就是发送广播Intent对象动作类型能够在注册广播IntentFilter对象中存在相同动作类型时,这个广播接收器才能接收到这个...} } 我们添加了一个广播接收器内部类,并且实现了onReceive方法,并且在注册广播接收器时候在IntentFilter对象中设置了优先级属性,在发送广播时候使用了sendOrderBroadcast

2K10

Android中四大组件以及如何避免anr

一个Android程序有四大基本组件,但只有activity是必须有的 1,activity:可视化交互界面,   为一个Android程序添加一个activity步骤是             ...就添加成功了,一个activity生命周期为:onCreate,onStart,onResume,onPause,onStop,onDestroy 2,service:服务,无界面,生命周期长,不可见...,可运行在后台组件,为一个Android程序添加服务步骤是 第一步:新建一个类继承自Service public class..."); } 3,BroadcastReceiver,广播接收器广播接收器只有一个方法onReceive,广播接收器组件用法如下: 第一步:自定义一个类...广播接收器onReceive方法执行时间特别短只有不到10s,这也就意味着无法在广播接收器中进行耗时操作,而且因为onReceive方法时间太短也无法去开启子线程来进行耗时操作,所以可以在onReceive

47820

Android知识点基础篇(一)

在Application中如果保存对象有导致内存泄漏风险。并且在onCreate中执行耗时操作会直接影响程序启动时间。 onCreate() 程序创建时候执行。...客户端通过调用startService(Intent) 发送请求,该Service根据需要启动,使用工作线程处理依次每个Intent,并在停止工作时停止自身。它时常用来处理一次性请求服务。...,有序广播。...标准广播发出后,所有接收器都能够接收到,并且接收器无法终止或干扰其他接收器接收。而有序广播在发出同一刻,只会有一个广播接收器能够接受,并且自行决定是否传递给下一个。 9....Handler: 消息处理者,通过Handler对象我们可以封装Message对象,然后通过sendMessage(msg)把Message对象添加到MessageQueue中;当MessageQueue

54640
领券