
BroadcastReceiver工作流程
BroadcastReceiver工作流程广播是安卓开发四大组件之一,比较常用。使用起来也很方便,具体使用参考《BroadcastReceiver:广播》。这里顺着源码看看BroadcastReceiver的实现逻辑。1、注册/反注册代码中注册广播只需一行代码即可注册广播:Context中的抽象方法ContextWrapper是Context的实现类,内有mBase成员变量ContextImpl都
# 标签
共 31 篇文章

BroadcastReceiver工作流程广播是安卓开发四大组件之一,比较常用。使用起来也很方便,具体使用参考《BroadcastReceiver:广播》。这里顺着源码看看BroadcastReceiver的实现逻辑。1、注册/反注册代码中注册广播只需一行代码即可注册广播:Context中的抽象方法ContextWrapper是Context的实现类,内有mBase成员变量ContextImpl都

Service启动流程分析Service作为Android的四大组件之一非常重要,比起一些后台执行的子线程、异步任务,Service更强大可靠。Service的启动方式有两种一种是直接start启动一个Service,另一种是bind方式绑定一个Service启动。IntentService就是Service,启动方式与普通Service无差。Service及IntentService参考《Ser
ResolveInfo:查询意图ResolveInfo这个类是通过解析一个与IntentFilter相对应的intent得到的信息。它部分地对应于从AndroidManifest.xml的< intent>标签收集到的信息。PackageManager这个类是用来返回各种的关联了当前已装入设备了的应用的包的信息。你可以通过getPacageManager来得到这个类。1、查询可处理Intent的R

Android AIDL 进阶:Service 权限配置与 RemoteCallbackListAIDL 让跨进程通信变得简单——定义接口、实现 Stub、bindService 一气呵成。但只要你的 Service 对外暴露,任何应用都能 bind 它、调用它的方法,安全隐患随之而来。本文讲清两个 AIDL 进阶主题:如何给 Service 加权限验证(声明式 + 编程式两种),以及如何用 Re

IntentFilter匹配通过Intent隐式启动Activity通过IntentFilter匹配合适的Activity进行启动。参考《启动Activity的几种方式》。其中主要通过action、category、data进行匹配,在Intent源码中可以查看到三个私有成员变量的定义:1、actionIntent必须且只能设置一个action。从源码可以看到,action定义为String类型的
Activity启动的FlagActivity有4中启动模式,参考Activity四种启动模式 。启动Activity的Intent添加flag,使用 Intent.addFlags(int flags) 方法。查看源码,可以看到总共有20种:后面简单介绍Intent几个常用的Flag。 1、FLAG_ACTIVITY_CLEAR_TOP这个Flag有没有很熟悉。SingleTask启动模式自带该

android:screenOrientation属性1、屏幕方向属性:screenOrientationAndroid应用程序中,android:screenOrientation用于控制activity启动时方向。 1.1、屏幕方向属性 屏幕方向android:screenOrientation取值可以为以下几种:unspecified 默认值,由系统决定,不同手机可能不一致landscape

Activity切换动画Activity之间切换的时候有动画效果,不同手机系统效果不一样,因为系统框架做了改进。而APP开发者也可以自定义Activity切换动画,让自己的应用变得高大上。1、overridePendingTransition(有效)Activity类中提供了Activity跳转动画方法,通过该方法可以实现Activity跳转时的动画效果。在Activity中定义的部分源码如下 ①

Android DeepLink跳转网页通过超链接跳转到APP指定页面,或者通过DeepLink打开特定的应用页面,都是通过Android DeepLink技术实现的。搜索跳转例子1、<data />要想让自己的应用能够通过DeepLink跳转,需要先了解AndroidManifest中的<data />标签。关于<data />及更多AndroidManifest标签详见Android Deve

onConfigurationChanged()每当配置发生变化的时候,比如横竖屏切换(可以设置屏幕方向,参考《屏幕方向属性:android:screenOrientation》)。Activity的生命周期都会重新创建,比如很竖屏的切换,Log如下:每当很竖屏切换的时候都会执行onCreate()重新创建Activity,之前的Activity销毁。能不能不销毁呢,万一用户在输入数据(虽然可以通

Activity页面全屏探究一些场景下需要应用全屏1、Window设置Flag在Activity的onCreate()方法中设置Flag:WindowManager.LayoutParams.FLAG_FULLSCREEN。了解更多Window Flag相关知识的详见《理解WindowManager》。2、在AndroidManifest中设置theme属性首先在values/styles.xml

IntentService使用详解之前已经学习过Android的四大组件之一Service,但是Service和前台运行在一个进程里,不能再Service中执行耗时操作,否则需要开启线程,执行完毕之后再借助Handler传回到主线程处理,Android提供了很多线程间通信的消息机制。Google又进一步进行了封装,提供了IntentService,内部对Service和Handler进行了封装,做

安全性要求比较高的APP,一般会禁止在某些页面Activity进行截图,诸如农业银行的APP。加上下面的flag即可:在Activity的onCreate()方法给Window加上flag:WindowManager.LayoutParams.FLAG_SECURE尝试截图的时候会提示“由于应用限制,该界面无法截图”,录屏的时候也会提示失败参考博客: 《Android之禁止APP截图、录屏》 An

启动Activity的几种方式启动Activity一般借助Intent,不仅可以启动本应用内的Activity,还可以启动第三方应用的Activity。启动还可以给Intent加上指定的flag,参考Activity启动的Flag。1、Intent显示启动一般启动本应用内的Activity可以使用这种方式,因为知道类名。显示启动也有多种方式,不过变来变去都一样。创建启动Activity用到的Int
Activity四种启动模式启动模式android:launchMode在AndroidManifest.xml中配置,共有四种启动模式。Android开发者博主扔物线关于Activity的启动模式说的非常细! 1、standard:标准模式此模式为默认模式,android:launchMode="standard”可不写,默认为此模式。在标准模式下,每启动一个activity,系统则会创建一个相